「タイニーゼビウスfor MZ-700」を自作エミュで動かす試み開始した
「Tiny XEVIOUS for 700」を、自作のMZ-700エミュレータで動かそうとしてみたが、Z80の未定義命令が使われていて動かなかった。16ビットのインデックスレジスタIXを、上位と下位のIXH、IXLレジスタとして扱う命令のようだった。
その他、OUT命令直後に停止している不具合発見。このバグは数ヶ月放置していたみたい。リファクタリングのあとの確認漏れ。
不具合治して、未定義命令を追加実装したけれど、完全には動作してません。
ということで、その要因として考えられることを列挙せよ↓
- バイナリは古旗さんのサイトからダウンロードし、アドレス解析後、勝手にMZTヘッダをくっつけた(自作エミュはMZTしか読み込めない)ので、どこかで間違いが発生している可能性あり。
- もしかしたら、オリジナルのモニタープログラム 1Z-009A でないと動かないのかもしれない。
- バンク切り替えが、今まで動かしたプログラムで使われていないことが判明したので、その辺がちょっと怪しい気がする。
- 今回対応した未定義命令の正確なフラグの動きが、実は不明。
- IレジスタやRレジスタ、割り込み関係のエミュレーションが甘いので、そのへんもヤバイかな。
うーん、確認すべきこと、いっぱいあるねえ・・・しばらくこのテーマで楽しめそうだな。
作者の古旗さん、作成当時はマイコン歴3年目の高校3年生ということですが、既にZ80の未定義命令を使っていたんだ!という事実に凄みを感じた。自分はその時高校2年?未定義命令なんて存在すら知らなかったからなあ。
- 運動:ロードで6キロ。筋トレ&ストレッチは、昨日のランの筋肉痛がちょっとあるため自粛した。
« 堅実に | トップページ | バレンタインは忙しい »
「プログラミング」カテゴリの記事
- 自分で書いたコードが大好き(2020.09.20)
- NPMのヨロコビ(2020.05.14)
- VanilaJS は必須科目(2019.02.25)
- MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース(2019.01.26)
- 戦々恐々GitHub vs BitBucket(2019.01.08)
« 堅実に | トップページ | バレンタインは忙しい »
コメント