乗算命令が追加されています。参考としてデータシートの乗算命令に関する部分の抜粋を貼っておきます。ステートで実行できるのでかなり高速です。乗算命令を使った場合、どれくらい速くなるものか実験してみました。乗算を実行するために乗算高速化ページにも書いている下記式のようなバイト分割法(と勝手に呼称)で行いました。x0*y0作成したソースコードを以下に示します。最適化はしていませんが高速化のために固定のワークエリアは使用せずスタックを使用するようにしました。実機で測定した乗算時間の結果を下表にまとめました。method(マイナス二乗法)等の乗算方式についての詳細は乗算高速化ページを参照してください。表中の比率(ratio)は速度比率なので実行時間比率の逆数で同一色内での比率になっています。測定値からクロック反比例で算出した推定値です。{今までの乗算処理時間の計測は乗算処理以外に乗算処理に渡す引数の設定や引数によるループ処理の部分の処理時間も含めた時間を計測していました。乗算処理がかなりコンパクトになったことから乗算処理以外の処理の時間分を測定し、従来計測していた乗算処理時間から減算することで純粋に乗算処理にかかる時間で比較するようにしました。ノーマルな乗算法より速かった1バイトのマイナス二乗法を使ったバイト分割法による乗算が、ノーマルな乗算法より遅くなったことです。倍に低下していますが、ノーマル手法よりは速いという結果でした。倍速いという結果でした。倍速い」という結果になりました。ハードウェアによる高速化なので速いですね。乗算命令をもエミュれることが判りました。最後に上記の速度比較表の元データとなる画面キャプチャーを貼っておきます。アセンブラで記述したASCIIARTの実行時間が通常の乗算処理の7.3秒から3.5秒に短縮されました。そこで、当初の目的でもあった割込み対応について検討してみましたので記録しておきます。状態になることに対してマスクする機能を追加しています。割込み時のIORQでのWAIT防止の三つありました。状態にならないので処理が止まらないことが判りました(実は弊害があり対処内容を後述します)。マスクすればいいだけの話です。内蔵のタイマを使った割込みで今回確認しましたので以下に記載します。今回、割込み動作試験用に作成したタイマ0を使い割込みを発生させる試験プログラムのソースを以下に示します。モード2の割込みとほぼ同じです。毎にインクリメントしています。状態になることを可能にするマクロです。割込みはベクタ方式の割込みとなります。参考としてデータシートのタイミングチャートが下図になります。状態になる心配はありません。立下りかつLIRがhighとした際のロジアナ波形例が下図になります。STは各命令の1バイト目のアクセス時にアクティブになるのでこれを目印にマーカーで区切り、実行している命令のニーモニックを図中に追記しました。言語で作成した下記のカウント値が変化した際に画面表示するプログラムを起動しました。#=30実行した際の画面キャプチャが下図です。受信したことを示しています。稀に検出してエラーが発生しています。今回の割込み動作試験で次の問題があることが判りました。アクティブな場合に検出するように変更しました(4回チェックでは問題事象が発生したのでマージン込みで6回にした)。2項についてはキー入力時に直接データ入力していたところをキー入力有無をステータスでチェック後、キー入力ありの場合にデータ入力するようにしました。対処後のカウントチェック画面のキャプチャも貼っておきます。数十分継続してみましたが上記の問題事象は発生しませんでした。ボードでは難しかった割込みを使った動作実験ができる環境ができました。コメントありがとうございます。