What it means
Code 0C9 is the program check for a fixed-point divide exception. A binary divide instruction could not produce a result, most often because the divisor was zero, or because the quotient was too large for the result register.
In COBOL this typically comes from a DIVIDE or COMPUTE on binary (COMP or COMP-5) fields. The decimal version of the same mistake is 0CB.
Typical causes
- A binary divisor field was zero for this record.
- A count or total used as a divisor was never set.
- A wrong record layout made the program read a different field as the divisor.
- A quotient far larger than the binary result can hold.
How to fix it
- Map the offset to the DIVIDE or COMPUTE statement.
- Check the divisor's value for the record being processed.
- Test the divisor for zero before dividing and handle that case.
- Add ON SIZE ERROR to divisions that use external data.
Example
Illustrative only; names and values are invented.
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=0C9 REASON CODE=00000009
IEF450I PAYJOB01 STEP020 - ABEND=S0C9 U0000 REASON=00000009