OS Ver6.1からCLPでもサブ・ルーチンの記述が使えるようになっているのは
ご存知だろうか?
CLPでもサブ・ルーチンを使う理由は
・繰り返すロジックをサブ・ルーチンとしてまとめる。
・複雑なロジックはサブ・ルーチンとして外出しする
である。
使用方法は簡単で
CALLSUBR SUBR(xxxxxx) でサブ・ルーチンを呼び出す。
サブ・ルーチンの本文は
SUBR SUBR(xxxxxx) に始まって
ENDSUBR で終わる。
ただし
・サブ・ルーチンの記述は ENDPGM の直前に記述することが
必要である。
[例]
0117.00 CALLSUBR SUBR(GETACCPTH)
:
:
0195.00 /******************************/
0196.00 SUBR SUBR(GETACCPTH)
0197.00 /******************************/
0198.00 NXTACP: RCVF OPNID(ACCPTH)
0199.00 MONMSG MSGID(CPF0864) EXEC(DO)
0200.00 RCVMSG PGMQ(*SAME) MSGTYPE(*LAST) RMV(*YES) MSG(&MSG)
0201.00 GOTO ENDACP
0202.00 ENDDO
0203.00 CHGVAR VAR(&KY) VALUE(&KY + 1)
0204.00 CHGVAR VAR(%SST(&KYR &POS 10)) VALUE(&ACCPTH_APKEYF)
0205.00 CHGVAR VAR(&POS) VALUE(&POS + 10)
0206.00 GOTO NXTACP
0207.00 ENDACP:
0208.00 ENDSUBR
