Das COBOL-Sonderregister RETURN-CODE kann zur Verständigung zwischen getrennt übersetzten COBOL-Programmen einer Ablaufeinheit dienen. Das Sonderregister existiert nur einmal im Programmsystem und ist intern als neunstelliges binäres Datenfeld (PIC S9(9) COMP-5 SYNC) definiert.
RETURN-CODE kann während des Ablaufs beliebig von den einzelnen getrennt übersetzten Programmen abgefragt oder verändert werden. Bei Beendigung des Programmlaufs wird vom Laufzeitsystem überprüft, ob RETURN-CODE auf Null steht. Ist das nicht der Fall, wird die Fehlermeldung COB9119 (bei COBOL-Returncode > 0) bzw. COB9128 (bei Anwender-Returncode > 0) ausgegeben. Wurde das Programm innerhalb einer Prozedur aufgerufen, verzweigt die Prozedur zum nächsten SET-JOB-STEP, EXIT-JOB, LOGOFF, CANCEL-PROCEDURE, END-PROCEDURE und EXIT-PROCEDURE-Kommando.
Ferner wird beim Verlassen eines COBOL-Unterprogramms der Wert des Sonderregisters RETURN-CODE in die Register 0 und 1 geladen. Entsprechend den ILCS-Konventionen steht der Wert damit dem aufrufenden Programm als Funktionswert zur Verfügung.
Um einen Funktionswert aus einem C-Programm zu übernehmen, muss das aufrufende COBOL-Programm mit der Steueranweisung RETURN-CODE=FROM-ALL-SUBPROGRAMS der RUNTIME-OPTIONS-Option bzw. mit dem COMOPT-Operanden ACTIVATE-XPG4-RETURNCODE=YES übersetzt werden (Achtung: Man kann den Funktionswert nicht mit der „RETURNING“- Angabe in der CALL-Anweisung erhalten).
Um die abnormale Beendigung des Programms zu vermeiden, muss der Benutzer dafür sorgen, dass RETURN-CODE vor Erreichen der STOP RUN-Anweisung den Wert 0 enthält.