2018-12-14 16:18 — asano
昨日の表参道アドベンチャーに続いて南青山アドベンチャーです。
「南青山アドベンチャー」は独立なった「AhSKI!」1983年号に掲載されたテキストのアドベンチャーゲームです。やはり機種依存部分が分離された構造で、本体プログラムは共通で PC-6001, PC-8001/8801, MZ-80B/2000, PASOPIA の各機種に対応していました。
これもZ80バイナリなのでZ80コードを実行できる何らかの環境が必要なのも同様です。
プログラムは9000H~0E817Hまでとかなり大きくなっています。グラフィックは無いものの近傍のマップが表示されたりと画面表示も進歩していて、機種依存部分も9000H~91FFHと拡大されています。実行時にRAMに転送して実行しなければならないという状況も同様です。
機種依存部分のアドレスは以下のようになっています。
アドレス | 内容 | 備考 |
---|---|---|
9000H~9002H | 必要なら初期化を行いゲーム本体へジャンプする | ゲーム本体の開始アドレスは9006H,9007Hから読んでいる きめ打ちでジャンプしても良いかは不明 |
9003H~9005H | Bレジスタの内容に従ってキー入力・画面出力などを行なう | ゲーム内から適宜呼び出される 機能詳細は別表 |
9006H,9007H | ゲーム本体の開始アドレス | 常に92A0H |
9008H~ | 「Thanks to」としてオープニングで表示される | 機種依存部分の作者を書くと思われる 00Hで終端された文字列 |
これ以降は91FFHまでは自由に使えます。
カラー表示やカーソル移動など機能が増えたので、機能ごとのエントリアドレスではなくBレジスタで機能を切り替える方式に変更になっています。
B | 機能 | 備考 |
---|---|---|
01H | 終了 | 必要に応じて後始末を行なう RET不要 |
02H | キー入力を待ってAレジスタに入れる | |
03H | Aレジスタの内容を表示する | |
04H | カーソルを移動する Dレジスタが桁、Eレジスタが行 |
|
05H | Aレジスタで表示色を切り替える | 00H~07Hが順に黒青赤マ緑水黄白 白黒機種もあるので無視しても問題ないと思われる |
06H | ゲームの途中保存 DEレジスタに開始アドレス・HLレジスタに終了アドレスが入っているのでその間のメモリを保存する |
呼び出し元を見るかぎり 0A93BH~0BD66H に固定されている 私は面倒だったので決め打ちで書いてしまっている |
07H | 保存されたゲームを再開 保存しておいたものをメモリに戻す Aレジスタに成功なら0失敗なら0以外を入れて戻る |
アドレスは渡されないので保存しておく |
08H | カーソル位置を取得する Dレジスタに桁・Eレジスタに行を入れて戻る |
昔、06H,07Hだけ入れ替えてフロッピーに保存する版も作った記憶があります。
ここに挙げた情報はPC-8001用の機種依存部からの推測でしかありません。またこれで最後までプレイしたわけでもありません。もし間違いなどお気付きの方は「ご意見・ご要望」にてご指摘いただけると助かります。
参考文献・関連図書:
秋山秀樹・高橋直穂(1983)「南青山アドベンチャー」『AhSKI!』1983年号, pp.09-13, アスキー.
コメントを追加