V5R4M0 未満の開発環境でも少しの工夫で CLP でのサブ・ルーチンを実現することができる。
以下のそのサンプルを紹介する。
ソースコード
0001.00 PGM 0002.00 DCL VAR(&N) TYPE(*DEC) LEN(4 0) VALUE(1) 0003.00 DCL VAR(&RTN_POINT) TYPE(*CHAR) LEN(10) 0004.00 0005.00 CHGVAR VAR(&RTN_POINT) VALUE('RTN001') 0006.00 GOTO MYSUBR 0007.00 RTN001: 0008.00 RETURN 0009.00 0010.00 MYSUBR: 0011.00 CHGVAR VAR(&N) VALUE(&N + 1) 0012.00 IF COND(&RTN_POINT *EQ 'RTN001') THEN(GOTO + 0013.00 CMDLBL(RTN001)) 0014.00 ENDPGM