The example code that follows illustrates how to redefine a standard file status so that it can be used as an extended file status. Assume for this example that the input file does not exist - when the OPEN INPUT statement is executed, a file status of 9/013 ("file not found") is returned.
select in-file assign to "user.dat". file status is file-status. ... working-storage section. 01 file-status. 05 status-key-1 pic x. 05 status-key-2 pic x. 05 status-key-2-binary redefines status-key-2 pic 99 comp-x. ... procedure division. open input in-file if file-status not = "00" if status-key-1 = "9" if status-key-2-binary = 13 display "File not found" ...
If you want to display the extended file status code, you need to move the second byte of the file status data item to a display field large enough to hold the maximum value 255:
select in-file assign to "user.dat" file status is file-status. ... working-storage section. 01 ans74-file-status. 05 status-key-1 pic x. 05 status-key-2 pic x. 05 status-key-2-binary redefines status-key-2 pic 99 comp-x. 01 display-ext-status 05 filler pic xx value "9/" 05 display-key 2 pic 999 ... procedure division. open input in-file if file-status not = "00" display "Error. File status =" with no advancing if status-key-1 = "9" move status-key-2-binary to display-key-2 display display-ext-status else display file-status end-if ...