MainframeKit

S0C6

Specification exceptionSYSTEM ABEND

An instruction was used in a way the architecture does not allow, such as a wrongly aligned operand or address.

MOST LIKELY

A branch to an odd or otherwise bad address.

FIRST CHECK

Look at the failing instruction and its operands in the dump.

TRY IT ▸

MainframeKit assistant

What it means

Code 0C6 is the program check for a specification exception. The instruction itself is valid, but something about how it was specified breaks the rules, for example an operand that is not on the boundary the instruction requires or an instruction address that is not on an even byte.

In compiled programs this is uncommon and usually points to control or a pointer going astray, not to a compiler fault.

Typical causes

  • A branch to an odd or otherwise bad address.
  • A data address that should be aligned but is not.
  • Hand-written assembler using an invalid register or operand combination.
  • A storage overlay that corrupted addresses or code.

How to fix it

  1. Look at the failing instruction and its operands in the dump.
  2. Check how the address in the failing register was built.
  3. For assembler code, review the instruction rules in the Principles of Operation.
  4. For compiled code, look for overlays and mismatched CALL interfaces.

Example

Illustrative only; names and values are invented.

IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=0C6  REASON CODE=00000006
IEF450I PAYJOB01 STEP020 - ABEND=S0C6 U0000 REASON=00000006