アットウィキロゴ

ポケコンエミュレータg800

 「SHARP PC-G850/G815/E200エミュレータ g800」(以下g800)は- Version 0 -で公開されている まるひろ さん作のポケコンエミュレータ。

 PC-G801は動作保証されていないが。以下に掲載する自作プログラムでPC-G801のROMを吸い出して動作させることに成功した。

PC-G801 ROM吸出し手順

●ポケコンをオールリセットする
●パソコンとの通信条件を合わせる(忘れがち…)
●マシン語と転送バッファの領域を確保する
 MON[enter]
 USER1250[enter]
 [BASIC]
●以下のプログラムをポケコンにアップロードする
 CPROM801.BAS;バンクの指定とシリアルポートへの出力
 CPROM801.HEX;ROMバンク切り替えとRAMへの転送、16進文字列への変換
(BASICのプログラムには行番号がついていない。PCG-LINKで.BASファイルを読み込んだら行番号が付加される)
●TeraTermを起動する
●TeraTermでログの記録を開始し、BASICプログラムをRUNする
●ROMデータの転送が開始される。所要時間は4800bpsで1時間10分ほど
●ログファイルにROMの内容が全て出力される。
●プログラムが終了したら、つづけて以下の手順でベクトル領域の転送を行う
 MON[enter]
 W0,3F[enter]
 [BASIC]
●テキストエディタでログファイルを開く
●BANK=xのところで切り出して(BANK=xの行は要らない) rom00.txt~rom03.txtという名前でセーブする。
●最後に転送したベクタ部分(最後の5行)はbase.txtという名前でセーブする。
●吸い出したROMファイルをg800が規定するフォルダに入れてconfigファイルのエミュレーション機器をE200にセット。
●g800起動


 以上の操作でG801のROMを吸い出し、g800でエミュレートすることができた。

 しかし、RAMはオリジナルの8KBではなく32KBあることになってしまうようで、ALLRESET直後、BASICからFREを実行すると30435と表示される。

 したがってG801用でBASICのワークエリアが1800-1FFFにあると想定されて書かれたプログラムは異常動作を起こす。

 BASIC側から見ると、G801のワークエリアは0000-1FFFのメモリイメージを6000-7FFFとみなしてアクセスしているようなので矛盾が生じていないようだ。

 増えた分のRAMがちゃんとRAMとして使えるかは近日検証

※参考 CPROM801.HEXのアセンブラソースCPROM801.asz(タブの文字数は4で)
最終更新:2013年03月07日 02:52