💻 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.