« 堅実に | トップページ | バレンタインは忙しい »

2017.02.13

「タイニーゼビウス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キロ。筋トレ&ストレッチは、昨日のランの筋肉痛がちょっとあるため自粛した。

« 堅実に | トップページ | バレンタインは忙しい »

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 堅実に | トップページ | バレンタインは忙しい »

2019年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
フォト

Google AdSense

銀の弾丸

無料ブログはココログ

他のアカウント