MainframeKit

S0C9

Fixed-point divide exceptionSYSTEM ABEND

A binary (fixed-point) divide failed, usually because the divisor was zero.

MOST LIKELY

A binary divisor field was zero for this record.

FIRST CHECK

Map the offset to the DIVIDE or COMPUTE statement.

TRY IT ▸

Record decoder

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

  1. Map the offset to the DIVIDE or COMPUTE statement.
  2. Check the divisor's value for the record being processed.
  3. Test the divisor for zero before dividing and handle that case.
  4. 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