2016-07-07 23:57 — asano
MAA-1ボードのソフトウェアは次の3つからなっています。
一つ目はハードウェアの初期化・制御を行い、またシリアルからメモリの参照・変更を行うモニタプログラムです。この部分は基本的には「南青山アドベンチャー」からは独立したプログラムで、Z-80のマイコンシステム一般に容易に移植可能です。コマンドとしてはD(メモリダンプ)・S(メモリへの書き込み)・G(指定アドレスへのジャンプ=実行)と@(ゲームの開始、これだけ南青山専用)です。
電源を投入するとこのモニタが動作します。この写真は起動後いくつかのコマンドを入力したところでメモリのダンプとセットを試してみました。
最後に「@」コマンドを入力しかけていますが、ここで[Enter]を押せばゲームが始まります。@でやっていることはROMに格納されている機種固有BIOSとゲーム本体をRAMにコピーし、その先頭にジャンプするだけです。
二つ目はゲームとモニタの橋渡しを行う機種固有BIOSです。こいつの仕様は公開されていませんでしたので、PC-8001用のものを解析しました。といっても512バイトに収まるサイズで、ROMルーチンを呼ぶだけのようなものなので簡単です。機能も単純で、エントリポイントも2つだけでした。
9000Hは開始アドレスで、ターミナルの初期設定をしてゲーム本体へジャンプします。
9003Hゲーム本体から呼ばれ、Bレジスタの値によって終了(モニタへ戻る)・1文字入力・1文字出力・カーソル位置移動・表示色変更・セーブ・ロードの各機能を実行します。カーソル位置・表示色はエスケープシーケンスをターミナルに送って処理します。セーブ・ロードはゲーム発表当時はもちろんカセットインターフェイスを使用していましたが、本機ではEEPROMに書き込み読み出すようにしています。
実行時のアドレスは9000H~ですが、ROMには2000H~入っています。
三つ目はゲーム本体ですが、勝手に配布することはできませんので、ここには置きません。何とか手に入れた方は機種共通部分(9200H~)をROMの2200H~に配置すれば動作するはずです。
Tera Termの中で動く南青山アドベンチャー、ちょっと変な感じがしますね。これはスタート画面です。
開始直後、主人公は庭の北西の角にいます。「S」は南を向いていることを表しています。「1」は障子、「7」は土塀みたいですね。
本当は家の中の面白いシーンにしたかったのですが、そこまでやるのが面倒なのでこれで失礼します。
Add new comment