2012年1月22日の日記を表示中

2012年 1月22日 (日)

SDI

頼まれていた電池切れのSYSTEM16AのSDIの復活にチャレンジしてみました。

SYSTEM16AのSDIの基板

やることはシンプルです。SDIのプログラムを、MAMEを使ってコード空間用のキーとデータ空間用のキーで復号した後、それらを適宜マージするだけ。ムーンウォーカーと同様に、SDIでもディスプレースメント付きPC相対でアクセスされるコード空間の領域はないようなので、逆アセンブル結果と16進数の並びを見るだけで、割と簡単にどっちか判別が可能です。

とは言え、ムーンウォーカーみたいなコード空間とデータ空間の境目の目印はないようなので、境界部分の判別はそれなりに慎重にやらないとまずい感じですが。後、なぜかdis.xが andi.b の一部を未定義命令として扱ったり、セグメンテーションフォルトで落ちたりするのが辛いところ。何が悪いんだ?

まあそんなこんなで、ぐだぐだになりながらもどうにかイメージが出来上がり、MAME上で動いたので、実際にROMに焼いて実機でテストしてみました。27256がないから27C512使うか。

作成したROMを実機に

お、動いた動いた。

SDI

プレイデモ

ふぅ、今回は一発で終了か・・・と思いきや、テストモードに入ろうとするとリセットがかかる問題があることが判明。原因は境界付近で本来コード空間の部分をデータ空間として処理してしまっていたことにありました。うーむ、後でもう1回見直しだなー。それから27256たくさん買わないとw

2012年1月22日の日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2012年1月
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        

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ