CL

115. CLP でもサブ・ルーチン

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