アドレスエラー・バスエラー (その3)
カテゴリー:
3回目は残りですが書ききれるかなぁ。さらに1回増えてしまうかもしれません。
ここからは自分の手で動かしたことはないのでマニュアルを元にざっくり書いていきます。
MC68020 / MC68030
この両者はソフトウェアから見た例外処理はほぼ共通のようなのでまとめて書きます。
これらではエラー発生時の状況によってスタックに積まれる情報量に違いがあるようです。キリの悪いところで発生すると保存しないといけない項目が増えるということなのかな。
どちらが使われたかはSP+6の上位4ビットでわかります。
Universal MonitorではこれまでMC68010までの対応だったので0000なら4ワード、それ以外なら29ワードとしていました。それをMC68020以降で実行するとスタックがおかしなことになります。今回MC68010, MC68020, MC68030, MC68040, MC68060, SCC68070で使われているフォーマットとその長さをテーブルにして引くようにしました。
まずは少ない場合から。