TFRCTL(制御権転送)というコマンドをご存知だろうか?
CALL命令によく似ていてほとんど構造は同じであるが
ちがうところは
CALL命令 ………… 次のスタックにプログラムを呼び出す
TFRCTL命令 ………. 次のプログラムを呼び出すとともに制御権も
そのプログラムに渡す
というちがいである。
それでは何のためにあるいはどのようなときにこのTFRCTLを
使うのだろうか?
PGM : (表示のための準備) : SNDRCVF DSP01 : IF (&IN05 *EQ '1') TFRCTL PGM001CL ENDDO
[解説]
このCLPはPGM001CLという名前であるが
CF05=再表示コマンドが押されたときには
TFRCTL PGM001CL としてもう一度このCLP自身を呼び出している。
つまり始めからやり直すということである。
元の位置に戻してやり直すよりはこのCLP自身を最初から
呼び出してやり直したほうが初期化されて間違いがないと
いうことである。
このようなときにCALLではなくTFRTCLを使うことになる。