IBM DOS/VS COBOL has a form of the USE statement in the DECLARATIVES section that is not recognized by ACUCOBOL-GT:
USE AFTER STANDARD ERROR PROCEDURE ON file-name GIVING data-name-1 [data-name-2]
This form is accepted by ACUCOBOL-GT when the -Cv option is in effect.
When an error handler introduced by this statement is invoked, the runtime puts special error codes into the eight-byte data item data-name-1. Each byte is loaded with 1s if the corresponding error condition is true. If the corresponding error condition is false, ACUCOBOL-GT loads it with zeros.
Here are the IBM conditions:
byte | indexed | direct | sequential |
---|---|---|---|
1 (leftmost) | DASD error | data check in count | parity error |
2 | wrong record length | wrong record length | wrong record length |
3 | prime data full | no room found | |
4 | cylinder index too small | data check in key or data | |
5 | master index too small | ||
6 | overflow area full | ||
7 | no EOF record written in prime data area |
This is how the preceding error conditions are mapped into the conditions detected by ACUCOBOL-GT:
85 | 74 | Vax | DG | IBM | data-name-1 |
---|---|---|---|---|---|
00 | 00 | 00 | 00 | 00 | 10000000 |
48 | 91 | 48 | 92 | 13 | 10000000 |
49 | 91 | 49 | 92 | 13 | 10000000 |
47 | 91 | 47 | 92 | 13 | 10000000 |
42 | 91 | 94 | 91 | 92 | 10000000 |
38 | 93 | 38 | 92 | 93 | 10000000 |
41 | 92 | 41 | 91 | 93 | 10000000 |
37 | 95 | 37 | 91 | 93 | 10000000 |
93 | 93 | 91 | 94 | 93 | 10000000 |
94 | 94 | 97 | 97 | 93 | 01000000 |
48 | 90 | 48 | 92 | 13 | 10000000 |
24 | 24 | 24 | 24 | 24 | 00100000 |
22 | 22 | 22 | 22 | 22 | 00010000 |
24 | 24 | 24 | 24 | 24 | 00010000 |
34 | 34 | 34 | 34 | 34 | 00100000 |
30 | 30 | 30 | 30 | 30 | 10000000 |
48 | 90 | 48 | 92 | 13 | 10000000 |
49 | 90 | 49 | 92 | 13 | 10000000 |
23 | 23 | 23 | 23 | 23 | 01000000 |
99 | 99 | 92 | 94 | 23 | 10000000 |
44 | 97 | 44 | 92 | 21 | 01000000 |
43 | 90 | 43 | 92 | 23 | 01000000 |
47 | 90 | 47 | 92 | 13 | 10000000 |
10 | 10 | 10 | 10 | 10 | 01000000 |
42 | 91 | 42 | 92 | 92 | 10000000 |
05 | 00 | 05 | 00 | 10 | 10000000 |
39 | 94 | 39 | 9A | 95 | 01000000 |
46 | 96 | 46 | 10 | 21 | 01000000 |
9A | 9A | 9A | 9A | 23 | 10000000 |
02 | 02 | 02 | 00 | 00 | 00010000 |
35 | 94 | 35 | 91 | 93 | 10000000 |
37 | 90 | 39 | 91 | 93 | 10000000 |
98 | 98 | 30 | 9B | 93 | 01000000 |
94 | 94 | 39 | 92 | 93 | 01000000 |
9B | 9B | 9B | 9B | 23 | 10000000 |
02 | 02 | 00 | 00 | 00 | 00010000 |
07 | 00 | 07 | 00 | 00 | 10000000 |
14 | 00 | 14 | 00 | 00 | 01000000 |
24 | 00 | 24 | 00 | 24 | 10000000 |
21 | 21 | 21 | 21 | 21 | 00010000 |
9C | 9C | 9C | 9C | 23 | 10000000 |
0M | 0M | 0M | 0M | 00 | 10000000 |
9D | 9D | 9D | 9D | 92 | 10000000 |
9Z | 9Z | 9Z | 9Z | 92 | 10000000 |
9E | 9E | 9E | 9E | 92 | 10000000 |