RsKeyはサブモジュールに文字単位、又は、行単位でデータを渡します。
処理の必要なデータの多くは行データです。ほとんどの外部機器データは、送信されてくる単独の文字単位では意味を持ちません。一度バッファされ、行データになった時点で処理できる単位になります。
サブモジュール側で、送られてくる文字単位データをターミネータ文字を使って行単位データにすることも可能ですが、以下のような欠点があります。
a.ルーチン作成
文字データを行単位データにするルーチンを作成するのは面倒。
b.ルーチンの重複
同じルーチンを各サブモジュールにいれるのは面倒であり、また、効率が悪い
c.メモリ消費
常駐プログラムであるサブモジュールはできるだけメモリを消費しないようにしたいが、重複したルーチンを複数のサブモジュールでもっていたのではメモリー消費が大きくなる。
サブモジュールでの行処理の負担とメモリ消費を考慮して、RsKeyで行処理を行って、サブモジュールに行データとして渡すようにしたものが行処理オプションです。行処理オプションの目的は、サブモジュールでの行データ処理の負担を最小限に抑える為です。このためRsKeyのサブモジュールは行いたい処理だけに集中できます。
<備考>
プレアンブルとポストアンブルオプションが可能な理由は、RsKeyに行処理ルーチンが組み込まれているからです。もし、RsKeyに行処理機能がなければ、この2つのオプションは不可能です。このオプションを使うには、必ず行処理オプションを有効にしなければなりません。
行処理オプションは、データに対して何等かの処理をおこなうときにのみ効力を持ちます。 もし、行単位のデータ処理を行わなければ、RsKey行処理機能を有効にする必要はありません。ただし、データ処理を行わない場合でも、行単位ハンドシェークをつかうときには、この行処理オプションは重要です。これは、行処理が行バッファをつかってデータをためることを利用したオプションで、データ処理をしなくても行処理オプションを有効にしなければ可能になりません。
サブモジュール側でのデータ処理
サブモジュールでは、文字単位処理ルーチンと行単位処理ルーチンの2つを用意しておきます。RsKeyのデータは文字単位か、行単位かによってサブモジュールの各処理ルーチンに渡されます。もし、行単位データだけを処理したければ、文字単位処理ルーチンを空のままにしておきます。また、その逆もできます。
処理ルーチンでは、渡されてきた文字、行データを変更、削除します。
詳細は、サブモジュール作成の章のコード例を参照してください。