HP 3000 Manuals

File Status Codes [ HP COBOL II/XL Programmer's Guide ] MPE/iX 5.0 Documentation


HP COBOL II/XL Programmer's Guide

File Status Codes 

The optional FILE STATUS clause specifies a data-item that contains a
file status code after any I-O statement (except RETURN) is applied to
the file.  Your program can contain USE procedures that examine the
values of such data-items and perform accordingly.

The first digit of a file status code indicates one of the following:

   *   The I-O operation was successful.

   *   An AT END condition occurred.

   *   An INVALID KEY condition occurred.

   *   A permanent error occurred.

   *   A logical error occurred.

   *   An implementation-defined condition occurred.

Table 5-6  lists the I/O statements and shows whether USE procedures,
file status codes, or INVALID KEY, AT END, and EOF conditions apply to
them.

          Table 5-6.  I/O Statements and Error Handling that Applies to Them 

-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
|                       |                       |         FILE          |      INVALID KEY      |
|                       |          USE          |        STATUS         |        AT END         |
|     I/O Statement     |       Procedure       |         CODE          |          EOF          |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| CLOSE                 |           x           |           x           |                       |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| DELETE                |           x           |           x           |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| EXCLUSIVE             |           x           |           x           |                       |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| OPEN                  |           x           |           x           |                       |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| READ                  |           x           |           x           |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| RETURN                |                       |                       |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| REWRITE               |           x           |           x           |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| START                 |           x           |           x           |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| UN-EXCLUSIVE          |           x           |           x           |                       |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------
|                       |                       |                       |                       |
| WRITE                 |           x           |           x           |           x           |
|                       |                       |                       |                       |
-------------------------------------------------------------------------------------------------

Unless more checking is required, your COBOL program should check only
the first digit of a file status code.  For example, check for an AT END
condition by checking that the first digit of the file status code is
one.  This promotes portability for the following two reasons:

   *   The program can be compiled on ANSI74 and ANSI85 compilers.

   *   The program will still work if file status codes are expanded in
       the future.

More than one file status code can apply to a situation (for example, a
program can try to REWRITE a record that is too large and also fail to
have a READ before the REWRITE). In this case, the file status code
reflects the first error detected.  The reason is that when the program
detects one error, it does not continue to check for additional errors.


NOTE The COBOL error message catalog file, COBCAT.PUB.SYS, is updated and released with each compiler version. It contains all the documentation relevant to the compiler and run-time error messages for the matching compiler version, including cause and action information for each error. Following each new update of the product version, you should use the new version of COBCAT.PUB.SYS for this information.
Table 5-8 and Table 5-9 give the file status codes for ANSI85 and ANSI74, respectively. Key terms that appear in those tables are defined below. Term Definition EOF End of file. The program attempted to read a record following the last record in the file. AT END An AT END condition caused a sequential READ statement to fail. INVALID KEY One of the categories of file status codes. A code in this category means that an I-O operation failed for one of these reasons: 1. A duplicate key existed. 2. A boundary violation occurred. 3. The record sought was not found. 4. A sequence error occurred. This applies to indexed files only. Permanent Error A category of file status code that indicates a problem accessing a permanent file. For example, an I-O statement failed due to an error that precluded further processing of the file. Logic Error A category of file status code that indicates a problem with program logic. A code in this category means that an I-O statement failed for one of the following reasons: 1. An improper sequence of I-O statements were performed on the file. 2. A user-defined limit was violated. The record size is an example. Table 5-7 groups the ANSI 1985 file status codes by category and explains what each code means for sequential access files, random access files, relative organization files, and indexed file Each entry applies to the columns that it crosses; for example, the information on the file status code 00 applies to all file types. Table 5-7. ANSI 1985 File Status Codes --------------------------------------------------------------------------------------------------- | File Status Code | File Status | Sequential | Random Access or | Indexed | | Category | Code | Access | Relative | Organization | | | | | Organization | (KSAM) | --------------------------------------------------------------------------------------------------- | Successful | 00 | Successful. No | | | | | | more information | | | | | | available. | | | --------------------------------------------------------------------------------------------------- | | 02 | Not applicable. | READ next key | | | | | | value that is the | | | | | | same as current | | | | | | key. WRITE or | | | | | | REWRITE creates | | | | | | duplicate key for | | | | | | alternate key that | | | | | | allows duplicates. | | --------------------------------------------------------------------------------------------------- | | 04 | READ length of | | | | | | record does not | | | | | | match file. | | | --------------------------------------------------------------------------------------------------- | | 05 | For OPEN, optional | | | | | | file did not | | | | | | exist, so it was | | | | | | created. | | | --------------------------------------------------------------------------------------------------- | | 07 | File is not a | Not applicable. | | | | | tape, as the OPEN | | | | | | or CLOSE statement | | | | | | states. | | | --------------------------------------------------------------------------------------------------- | AT END | 10 | READ error. | | | | | | Either EOF, or | | | | | | optional file did | | | | | | not exist. | | | --------------------------------------------------------------------------------------------------- | | 14 | Not applicable. | READ error. | Not applicable. | | | | | Record number is | | | | | | too big for | | | | | | relative key data | | | | | | item. | | --------------------------------------------------------------------------------------------------- Table 5-7. ANSI 1985 File Status Codes (cont.) --------------------------------------------------------------------------------------------------- | File Status Code | File Status | Sequential | Random Access or | Indexed | | Category | Code | Access | Relative | Organization | | | | | Organization | (KSAM) | --------------------------------------------------------------------------------------------------- - INVALID KEY - 21 - Not applicable. - - Sequence error. - --------------------------------------------------------------------------------------------------- | | 22 | Not applicable. | WRITE error. | WRITE or REWRITE | | | | | Tried to write a | error. Tried to | | | | | duplicate key | write a duplicate | | | | | (does not apply to | key. | | | | | REWRITE.) | | --------------------------------------------------------------------------------------------------- | | 23 | Not applicable. | START or READ of | | | | | | missing optional | | | | | | file, or record | | | | | | does not exist. | | --------------------------------------------------------------------------------------------------- | | 24 | Not applicable. | Tried to WRITE | Tried to WRITE | | | | | beyond file | beyond file | | | | | boundary, or | boundary. | | | | | sequential WRITE | | | | | | record number is | | | | | | too big for | | | | | | relative key data | | | | | | item. | | --------------------------------------------------------------------------------------------------- | Permanent Error | 30 | No more | | | | | | information | | | | | | available.[REV | | | | | | BEG] | | | --------------------------------------------------------------------------------------------------- | | 31 | OPEN, SORT, or | | | | | | MERGE of dynamic | | | | | | file failed due to | | | | | | file name | | | | | | attribute | | | | | | conflict.[REV END] | | | --------------------------------------------------------------------------------------------------- | | 34 | Boundary | Not applicable. | | | | | violation. | | | | | | (Record too big or | | | | | | too small.) | | | --------------------------------------------------------------------------------------------------- | | 35 | OPEN error. | | | | | | Required file does | | | | | | not exist. | | | --------------------------------------------------------------------------------------------------- | | 37 | EXTEND or OUTPUT | | | | | | on unwritable | | | | | | file, or I-O | | | | | | operation on file | | | | | | that does not | | | | | | support it, or | | | | | | INPUT on device | | | | | | that is invalid | | | | | | for INPUT. | | | --------------------------------------------------------------------------------------------------- | | 38 | OPEN on LOCKed | | | | | | file (LOCKed when | | | | | | last closed). | | | --------------------------------------------------------------------------------------------------- | | 39 | OPEN was | | | | | | unsuccessful due | | | | | | to fixed file | | | | | | attribute | | | | | | conflict. | | | --------------------------------------------------------------------------------------------------- Table 5-7. ANSI 1985 File Status Codes (cont.) --------------------------------------------------------------------------------------------------- | File Status Code | File Status | Sequential | Random Access or | Indexed | | Category | Code | Access | Relative | Organization | | | | | Organization | (KSAM) | --------------------------------------------------------------------------------------------------- | Logic Error | 41 | OPEN on file that | | | | | | is already open. | | | --------------------------------------------------------------------------------------------------- | | 42 | CLOSE on file that | | | | | | was not open. | | | --------------------------------------------------------------------------------------------------- | | 43 | No READ before | No READ before | | | | | REWRITE. READ is | REWRITE or DELETE. | | | | | required before | | | | | | REWRITE. | | | --------------------------------------------------------------------------------------------------- | | 44 | Boundary violation | Boundary violation | | | | | (Record too big or | (Record too big or | | | | | too small, or | too small.) | | | | | rewritten record | | | | | | not the same | | | | | | size.) | | | --------------------------------------------------------------------------------------------------- | | 46 | READ after AT END | READ after AT END | | | | | or after | or after | | | | | unsuccessful READ. | unsuccessful READ | | | | | | or START. | | --------------------------------------------------------------------------------------------------- | | 47 | READ on file not | READ or START on | | | | | open for INPUT. | file not open for | | | | | | INPUT or I-O. | | --------------------------------------------------------------------------------------------------- | | 48 | WRITE on file not | | | | | | open for OUTPUT or | | | | | | EXTEND. | | | --------------------------------------------------------------------------------------------------- | | 49 | REWRITE on file | REWRITE or DELETE | | | | | not open for I-O. | on file not open | | | | | | for I-O. | | --------------------------------------------------------------------------------------------------- | Implementation- | 9x | Unexpected error. | | | | Defined | | The x is an ASCII | | | | | | character whose | | | | | | numeric code is an | | | | | | integer between 0 | | | | | | and 255, | | | | | | inclusive, and | | | | | | represents a file | | | | | | system error. For | | | | | | more information, | | | | | | see the[REV BEG] | | | | | | MPE XL error | | | | | | message catalog or | | | | | | the MPE XL Error | | | | | | Message Manual | | | | | | (Volume 1 or | | | | | | Volume 2).[REV | | | | | | END] | | | --------------------------------------------------------------------------------------------------- Table 5-8 groups the ANSI 1974 file status codes by category and explains what each code means for sequential access files, random access files, relative organization files, and indexed file Each entry applies to the columns that it crosses; for example, the information on the file status code 00 applies to all file types. Table 5-8. ANSI 1974 File Status Codes --------------------------------------------------------------------------------------------------- | File Status Code | File Status | Sequential | Random Access or | Indexed | | Category | Code | Access | Relative | Organization | | | | | Organization | (KSAM) | --------------------------------------------------------------------------------------------------- | Successful | 00 | Successful. No | | | | | | more information | | | | | | available. | | | --------------------------------------------------------------------------------------------------- | | 02 | Not applicable. | READ next key | | | | | | value into current | | | | | | key. WRITE or | | | | | | REWRITE creates | | | | | | duplicate key for | | | | | | alternate key that | | | | | | allows duplicates. | | --------------------------------------------------------------------------------------------------- | AT END | 10 | READ error. | | | | | | Either EOF, or | | | | | | optional file did | | | | | | not exist. | | | --------------------------------------------------------------------------------------------------- - INVALID KEY - 21 - Not applicable. - - Sequence error. - --------------------------------------------------------------------------------------------------- | | 22 | Not applicable. | WRITE or REWRITE | | | | | | error. Tried to | | | | | | write a duplicate | | | | | | key. | | --------------------------------------------------------------------------------------------------- | | 23 | Not applicable. | START or READ of | | | | | | missing optional | | | | | | file, or record | | | | | | does not exist. | | --------------------------------------------------------------------------------------------------- | | 24 | Not applicable. | Tried to write | Tried to write | | | | | beyond file | beyond file | | | | | boundary, or | boundary. | | | | | sequential WRITE | | | | | | record number is | | | | | | too big for | | | | | | relative key data | | | | | | item. | | --------------------------------------------------------------------------------------------------- | Permanent Error | 30 | No more | | | | | | information | | | | | | available. | | | --------------------------------------------------------------------------------------------------- | | 34 | Boundary | Not applicable. | | | | | violation. | | | | | | (Record too big or | | | | | | too small.) | | | --------------------------------------------------------------------------------------------------- | Implementation- | 9x | Unexpected error. | | | | Defined | | The x is an ASCII | | | | | | character whose | | | | | | numeric code is an | | | | | | integer between 0 | | | | | | and 255, | | | | | | inclusive, and | | | | | | represents a file | | | | | | system error. For | | | | | | more information, | | | | | | see the[REV BEG] | | | | | | MPE XL error | | | | | | message catalog or | | | | | | the MPE XL Error | | | | | | Message Manual | | | | | | (Volume 1 or | | | | | | Volume 2).[REV | | | | | | END] | | | --------------------------------------------------------------------------------------------------- Table 5-9 compares the ANSI 1985 I-O status codes to their ANSI 1974 equivalents and explains the execution differences between ANSI 1985 and ANSI 1974. Table 5-9. Differences between ANSI 1985 and ANSI 1974 File Status Codes --------------------------------------------------------------------------------------------- | ANSI 1985 | Equivalent ANSI | Execution Difference ANSI | Execution Difference ANSI | | Status Code | 1974 Status Code | 1985 | 1974 | --------------------------------------------------------------------------------------------- - 00 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- - 02 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- - 04 - 00 - Same. - - --------------------------------------------------------------------------------------------- - 05 - 00 - Same. - - --------------------------------------------------------------------------------------------- - 07 - 00 - Same. - - --------------------------------------------------------------------------------------------- - 10 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- | 14 | 00 | READ fails becaust the | READ succeeds. | | | | value of the data item is | | | | | greater than the PICTURE | | | | | that describes the key. | | --------------------------------------------------------------------------------------------- - 21 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- - 22 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- - 23 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- | 24 | 24 | Same as for ANSI 1974 | | | | | except that this code is | | | | | also returned when the | | | | | value of the data item is | | | | | greater then the PICTURE | | | | | that describes it. | | --------------------------------------------------------------------------------------------- - 30 - Same. - Not applicable. - - --------------------------------------------------------------------------------------------- - 34 - None. - Not applicable. - - --------------------------------------------------------------------------------------------- | 35 | 00 | The file is not created. | The file is created for | | | | | an OPEN with the I-O or | | | | | EXTEND phrase. | --------------------------------------------------------------------------------------------- Table 5-9. Differences between ANSI 1985 and ANSI 1974 File Status Codes (cont.) --------------------------------------------------------------------------------------------- | ANSI 1985 | Equivalent ANSI | Execution Difference ANSI | Execution Difference ANSI | | Status Code | 1974 Status Code | 1985 | 1974 | --------------------------------------------------------------------------------------------- | 37 | 00 | The OPEN fails and a | The OPEN succeeds and the | | | | permanent error condition | program continues to | | | | exists for the file. | execute, although it can | | | | | abort later for another | | | | | reason. | --------------------------------------------------------------------------------------------- | 38 | 00 | The OPEN fails and a | The OPEN fails and a | | | | permanent error condition | message is printed, even | | | | exists for the file. | though an error status | | | | | code is not returned. | --------------------------------------------------------------------------------------------- | 39 | 00 | The OPEN fails and a | The OPEN succeeds and may | | | | permanent error condition | print an error message. | | | | exists for the file. | | --------------------------------------------------------------------------------------------- - 41 - 9x - Same. - - --------------------------------------------------------------------------------------------- - 42 - 9x - Same. - - --------------------------------------------------------------------------------------------- | 43 | 00 or 9x | DELETE statement fails. | DELETE statement | | | | | succeeds. | --------------------------------------------------------------------------------------------- | | | No difference for REWRITE | | | | | statement. | | --------------------------------------------------------------------------------------------- | 44 | 00 | Statement fails due to | Statemenet succeeds. | | | | logic error. | | --------------------------------------------------------------------------------------------- | 46 | 10 | Statement fails due to | Continues to return AT | | | | logic error. | END condition or READ | | | | | ERROR condition. | --------------------------------------------------------------------------------------------- | 47 | 00 or 9x | Statement fails due to | If the file is not open, | | | | logic error. | the status code is 9x. | | | | | If the file is open in | | | | | the wrong mode, the | | | | | status code is either 9x | | | | | or 00, and sometime | | | | | execution continues | | | | | correctly. | --------------------------------------------------------------------------------------------- | 48 | 00 or 9x | Statement fails due to | | | | | logic error. | | --------------------------------------------------------------------------------------------- | 49 | 00 or 9x | Statement fails due to | | | | | logic error. | | --------------------------------------------------------------------------------------------- ANSI85 error checking is more stringent than ANSI74 error checking. If you want to use ANSI85 features in your program, but want ANSI74 error checking, use the STAT74 control option. See Chapter 6 . Sequence of Events If the file status code indicates that the I-O operation was successful, the following occur: [REV BEG] * The NOT AT END or NOT INVALID KEY phrase is executed, if present. * USE procedures, the AT END phrase, and the INVALID KEY phrase are not executed.[REV END] * If the SELECT phrase for the file contains a FILE STATUS phrase, the appropriate file status code is returned. If the file status code indicates an AT END or INVALID KEY condition, the following occur: [REV BEG] * The NOT AT END or NOT INVALID KEY phrase is not executed. * The AT END or INVALID KEY phrase is executed, if present. * If there is a USE procedure, but no AT END or INVALID KEY phrase, the USE procedure is executed.[REV END] * If the SELECT clause for the file contains a FILE STATUS clause, the appropriate file status code is returned. * The program continues to execute after any error procedures (USE, AT END, or INVALID KEY) have been executed. If the file status code indicates a permanent or logical error or an implementation-defined condition, the following occur: * If the SELECT clause for the file contains a FILE STATUS clause, the appropriate file status code is returned. The program continues to execute after any USE procedures have been executed. * If the SELECT clause for the file does not contain a FILE STATUS clause, the program aborts if no applicable USE procedures exist, and a file information display is output. (For an explanation of the file information display, refer to Using Files: A Guide for New Users of HP 3000 Computer Systems). * Any applicable USE procedure is executed. * INVALID KEY, NOT INVALID KEY, AT END, and NOT AT END phrases are not executed. * To get more information about the cause of a 9x error, call CKERROR to convert x to an MPE XL error number. See also the following example. Example 1 The following program declares a FILE STATUS item, CHECK-TAPE, and checks it after the READ statement. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT TAPEIN ASSIGN TO "READTAPE" FILE STATUS IS CHECK-TAPE. DATA DIVISION. FILE SECTION. FD TAPEIN. 01 TAPE-REC PIC X(80). WORKING-STORAGE SECTION. 77 MPE-ERROR PIC 9(4) USAGE DISPLAY. 01 CHECK-TAPE. 02 STAT-KEY-1 PIC X. 02 STAT-KEY-2 PIC X. PROCEDURE DIVISION. : READ TAPEIN AT END PERFORM NO-MORE-TAPE. IF STAT-KEY-1 = "9" THEN CALL INTRINSIC "CKERROR" USING CHECK-TAPE MPE-ERROR DISPLAY "9 ERROR IN TAPE READ, MPE ERROR IS " MPE-ERROR PERFORM ERROR-RTN. : Figure 5-3 shows what happens when a run-time I-O error occurs.
[FFN14]
Figure 5-3. Run-Time I-O Error Handling Example 2 The following program creates a tape file, closes it, then opens it as an input file. Fields in the input records are compared to the values written to ensure that they were processed correctly. The program uses the FILE STATUS clause and a USE statement for error handling. IDENTIFICATION DIVISION. PROGRAM-ID. EXAMPLE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILE-A ASSIGN TO TNAME1 ORGANIZATION SEQUENTIAL ACCESS SEQUENTIAL FILE STATUS IS STATUS-FIELD. DATA DIVISION. FILE SECTION. FD FILE-A. 01 FILE-RECORD. 02 FILLER PICTURE X(120). WORKING-STORAGE SECTION. 01 STATUS-FIELD. 02 SFIELD PIC X. 02 FILLER PIC X. 01 EOF-FLAG PIC 9 VALUE 0. 01 COUNTER PICTURE S9(9) USAGE COMPUTATIONAL. 01 RECORDS-IN-ERROR PIC S9(5) USAGE COMP VALUE ZERO. 01 ERROR-FLAG PICTURE 9. 01 FILE-RECORD-INFORMATION-REC. 03 FILE-RECORD-INFO . 05 FILE-RECORD-INFO-1. 07 XFILE-NAME PIC X(6). 07 XRECORD-NUMBER PIC 9(6). 07 XPROGRAM-NAME PIC X(6). 07 RECORDS-IN-FILE PIC 9(6). 07 XLABEL-TYPE PIC X(1). 07 FILLER PIC X(95). PROCEDURE DIVISION. DECLARATIVES. SECT-EXAMPLE-01 SECTION. USE AFTER STANDARD EXCEPTION PROCEDURE ON FILE-A. TEST-STATUS. IF SFIELD EQUAL TO "1" MOVE 1 TO EOF-FLAG GO TO EXIT-PARA. ADD 1 TO RECORDS-IN-ERROR. EXIT-PARA. EXIT. END DECLARATIVES. SECT-EXAMPLE-02 SECTION. INITIAL-PARA. MOVE SPACE TO STATUS-FIELD. MOVE "FILE-A" TO XFILE-NAME. MOVE "EXAMPLE" TO XPROGRAM-NAME. MOVE 500 TO RECORDS-IN-FILE. MOVE "S" TO XLABEL-TYPE. MOVE 000001 TO XRECORD-NUMBER. OPEN OUTPUT FILE-A. INIT-FILE. MOVE FILE-RECORD-INFO-1 TO FILE-RECORD. WRITE FILE-RECORD. IF XRECORD-NUMBER EQUAL TO 500 GO TO INIT-FILE-EXIT. ADD 1 TO XRECORD-NUMBER. GO TO INIT-FILE. INIT-FILE-EXIT. DISPLAY "OPEN WRITE FILE-A" . DISPLAY "FILE CREATED, RECS =" , XRECORD-NUMBER. CLOSE FILE-A. * A sequential tape file with 120 character records * has been created. The file contains 500 records. INIT-READ. MOVE ZERO TO COUNTER. * This test reads and checks the file created in INIT-FILE. OPEN INPUT FILE-A. TEST-READ. READ FILE-A RECORD. IF EOF-FLAG EQUAL TO 1 GO TO TEST-READ-01. MOVE FILE-RECORD TO FILE-RECORD-INFO-1. ADD 1 TO COUNTER. IF COUNTER GREATER THAN 500 DISPLAY "MORE THAN 500 RECORDS" GO TO FAIL-TEST. IF COUNTER NOT EQUAL TO XRECORD-NUMBER ADD 1 TO RECORDS-IN-ERROR GO TO TEST-READ. IF XFILE-NAME NOT EQUAL TO "FILE-A" ADD 1 TO RECORDS-IN-ERROR GO TO TEST-READ. IF XLABEL-TYPE NOT EQUAL TO "S" ADD 1 TO RECORDS-IN-ERROR. GO TO TEST-READ. TEST-READ-01. IF RECORDS-IN-ERROR EQUAL TO ZERO GO TO PASS-TEST. DISPLAY "ERRORS IN READING FILE-A" . FAIL-TEST. DISPLAY "TEST FAILED". DISPLAY "RECORDS IN ERROR =" , RECORDS-IN-ERROR. GO TO EXIT-EXAMPLE. PASS-TEST. DISPLAY "TEST PASSED". DISPLAY "FILE VERIFIED RECS =" , COUNTER . EXIT-EXAMPLE. CLOSE FILE-A. STOP RUN.


MPE/iX 5.0 Documentation