現在地

南青山アドベンチャー


テーマ:

昨日の表参道アドベンチャーに続いて南青山アドベンチャーです。

「南青山アドベンチャー」は独立なった「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, アスキー.

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。