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