MC68000でブレーク
カテゴリー:
長らくお待たせしました、MC68000でのブレーク処理です。
MC68000でブレークに使いやすい命令は何かを考えてみます。命令を置き換えて埋め込むので1ワード長のもの、ユーザモードで実行中でもスーパバイザモードに戻ってくるためには例外を発生させるものが良さそうです。もちろん無条件で実行される必要があります。
これらの条件を満たすものとして以下が考えられます。
TRAP
命令- 特権命令
- 未実装命令(Line-1010, Line-1111)
- 不当命令
TRAP
命令はAPI的に使われることが多いのでできれば残しておきたいところです。
スーパバイザモードでブレークしたくなることも考えると特権命令も避けたいですね。
未実装命令もMC68020+MC68881などでは使われます。X68000がIOCSコールに未実装命令を使用していたのですが、X68030開発時にコプロセッサ命令との衝突がありIOCSコールの番号を変更せざるを得なかったという事例があります。