一往確認日記 |
2016年12月27日 [長年日記]
_ Escalator - 命令のデコード(3)
Escalatorというのは、各種PLCがメーカーや機種毎にプロジェクトデータが異なるため互換性がなく、移植するのが大変なのを解決しようとするものです。
ここのescalatorのカテゴリーを見てもらえると今までの経緯を見てもらうことができます。
昨日の1バイトに続いて2バイト読み込む部分です。
program_counterが現在読み込もうとしている位置になります。 PLCはワード単位で格納しているので、バイト位置を出すために2で割ってprog_index[0]に入れています。 prog_index[1]には偶数か奇数かを入れていています。
ここまでは1バイトの時と同じです。
偶数の場合はそのままwordで読み込んだ値をFD0に入れて返しますが、奇数の場合は(IF分の中)prog_index[0]の位置にあるデータの下位8bitとprog_index[0]+1の位置にあるデータの上位8bitをくっつけてFD0に入れて返します。