Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL Special Registers

Intermediate 🕑 12 min read 👁 0 views

COBOL Special Registers

Special registers are predefined data items that provide system information and control program behavior.

Common Special Registers

Register Description
RETURN-CODE Halfword binary value returned to calling program or OS
SORT-RETURN Status of last SORT/MERGE operation
DEBUG-ITEM Debug information (when debugging active)
LINAGE-COUNTER Current line number for LINAGE files
ADDRESS OF Address of a data item
LENGTH OF Length of a data item in bytes
WHEN-COMPILED Compile date/time
SHIFT-OUT/SHIFT-IN DBCS control characters
XML-EVENT Current XML parse event
JSON-STATUS JSON operation status

RETURN-CODE

```cobol MOVE 0 TO RETURN-CODE (success) MOVE 8 TO RETURN-CODE (warning) MOVE 16 TO RETURN-CODE (error) ```

LENGTH OF

```cobol MOVE LENGTH OF WS-RECORD TO WS-LENGTH ```

ADDRESS OF

```cobol SET WS-POINTER TO ADDRESS OF WS-DATA ```

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SPECIAL-REG-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-LENGTH PIC 9(5).
       01 WS-DATA PIC X(100) VALUE 'TEST DATA'.
       01 WS-PTR POINTER.
       01 WS-COMPILE-INFO PIC X(21).
       PROCEDURE DIVISION.
      * LENGTH OF
           MOVE LENGTH OF WS-DATA TO WS-LENGTH
           DISPLAY 'Length: ' WS-LENGTH
           
      * ADDRESS OF
           SET WS-PTR TO ADDRESS OF WS-DATA
           
      * WHEN-COMPILED
           MOVE WHEN-COMPILED TO WS-COMPILE-INFO
           DISPLAY 'Compiled: ' WS-COMPILE-INFO
           
      * RETURN-CODE
           MOVE 0 TO RETURN-CODE
           DISPLAY 'Return code set to 0'
           
           STOP RUN.