趣味工房 HIRO-G

< TK80BS インベーダ・ゲーム移植再開その1 


 今回の移植作業は次の通りです。

1. 先ずは、移植作業と移植作業中のテストを効率的にするために、モニタをどうするかを検討しました結果、ND80ZVのTK80互換モニタと改造エンコーダ付きフル・キーボード(CP/M No3、No12、BASIC No18等参照)を使うために、毎度おなじみの「CP/M手作りマイコン@」のP90〜95に記載された、CP/M基本モニタを使いました。 
2. 次に、モニタROMへの配置を検討しました結果、ROM上のメモリマップは次のようになりました。
 @ 0000H〜03FFH番地: プチ改造ND80ZVモニタ
 A 0400H〜04FFH番地: ND80ZVモニタ関連サブルーチン
 B 0500H〜0FFFH番地: CP/M基本モニタ
3. @のプチ改造は、CRTCパラメータの設定、画面クリア、「ND80Z3 MONITOR」 起動表示の機能を追加しました。 Aがそのサブルーチンを配置したメモリ領域です。 BにはCP/M基本モニタを配置しています。 このメモリ配置で移植作業用のモニタROMを作成し、ND80ZVのモニタROMに換え、ROMソケットに差込み電源を入れますと、写真1のように、先ずND80ZVのモニタが起動します。 写真2は、例のようにND80ZVのモニタを使って、直接VRAM領域(F000H〜F3FFH)へ書込みテストを行った結果です。
4. 写真3は、ND80ZVのモニタから500H番スタートで、CP/M基本モニタを起動し、Mコマンドをテストした結果の画面です。 CP/M基本モニタは500H番スタートした時点で、F800H番へ転送されて実行されますが、バンク切替はせず、0000H〜7FFFH番はROM領域のままとしています。
5. 次に、ホストPC(XP)にセーブされている、移植作業中のインベーダ・ゲームをロードしてみました。 リセットすれば、ND80ZVのモニタへ戻りますので、普通にホストPCからUSBを使ってND80ZVへロードする事ができます。 写真4はホストPCから転送が完了した画面で、写真5は、ND80ZVが受信を完了状態です。
6. 写真6は、ロードしたインベーダ・ゲームを起動している画面ですが、一応、正常に起動はしました。

 これで、移植の実作業に入ることができます。 この両方のモニタについては、何れも40文字X20行の画面としています。 ゲームでは、それぞれに合ったパラメータの設定ができるように、ゲームのプログラムで変更します。  移植作業中のインベーダ・ゲームにも、TK80BSにあわせ32文字X16行に設定するよう、パラメータ設定用のプログラムを追加します。

 主な移植作業としては、VRAM領域の変更(BSは7E00H〜7FFFHと変則的)、作業領域の変更、8255のコントロールの違い、BSはメモリマップドI/Oですが当方のマシンはI/OマップドI/Oとなります。   また、作業領域とVRAM領域を変更しているので、制限や判定のルーチンでいろいろとバグがあり、現状では次のような不具合があります。

 @ ゲームでフル・キーボードが使えない。
 A なぜか、砲台の移動がぎこちない。 反応が遅い。
 B 突然、ゲームオーバーになる。
 C 砲台がインベーダのビームに当たると、ゲームが止まる。
 D 音出しのプログラムがない。




写真4 ホストPCのロード完了の画面




写真5 ND80ZVのロード完了の画面




写真6 ND80ZVにてインベーダ・ゲーム起動の確認


< 今後の予定 >


@ TK80BS インベーダ・ゲーム移植再開その1: 完了

A TK80BS インベーダ・ゲーム移植再開その2:

B TK80BS BASICの移植?:

C  FDDコントローラの製作?:

D CP/Mシステム復元の可能性の検討?:

E グラフィック・ボードの製作?:


BASIC No40


BASICマシン復元進捗  ・TK80BS インベーダ・ゲーム移植再開その1
2014年9月7日


写真1 ND80ZVモニタ起動




写真2 ND80ZVモニタで直接VRAM領域への書込みテスト




写真3 CP/M基本モニタMコマンドのテスト