Pasopia7のメモリについて
ポート3Chでメモリモードの切り替え
・bit0=0, bit1=0:0000h-7FFFhがBASIC ROM
・bit0=1:4000h-7FFFhがBIOS
・bit1=1:0000h-7FFFhがRAM
・bit2=1:8000h-BFFFhがV-RAM
・bit3=1:(I/O Memory Mode) RAM(64KB)をI/O空間としてアクセス。次のI/Oアクセスのみ有効で、I/Oアクセス後に解除される。BIOSからのRAMアクセスで利用される
メモリ構成の優先順位
BASICを使わない場合、ROMの裏にあるRAM領域(いわゆる裏RAM)を利用できる。
メモリーのステータスは、ポート22hで読み込むことができる
マシン語処理が呼ばれた後にbit0とbit1の値を保持しておき、元の処理に戻る際は保存しておいたメモリモードに戻しておく。
bit3-0:各bit=1のとき、対応プレーンのV-RAMデータバスとCPUデータバス間のデータ交換が可能
以下の値をセットしてV-RAMプレーンを切り替える。
・11h:ブルー
・22h:レッド
・44h:テキスト/グリーン
複数プレーンの同時設定も可能
・77h:ブルー, レッド, テキスト/グリーン全てのプレーンにデータを書き込む
→画面の消去などで利用できる
-----
UOOTOYのメモリマップについて
MZ-2000版は2000h-8CFFhにロードした後、表示用データとメインプログラムを別の領域にコピーしている。
2色文字データは、Pasopia7のV-RAM領域(8000h-BFFFh)と重なるため、コピー先を変更
・MZ-2000版:7C90h-810Fh
・Pasopia7版:0B80h-0FFFh
コピー前 | コピー後 | 内容 |
---|---|---|
- | 0900h-09FFh | ビット反転テーブル |
- | 0A00h-0AFFh | V-RAMプレーン変換テーブル |
- | 1000h-1FFFh | V-RAM変換テーブル |
2000h-28BFh | 2000h-28BFh | プログラム、文字列データ、仮想画面など |
2C00h-3FFFh | 2C00h-3FFFh | 面データ |
4000h-4094h | 556Ch-5600h | 表示用データ:7色の棒データ |
405Ch-408Bh | 55C8h-55F7h | V-RAMコピーのロジック(Pasopia7では使用しない) |
4100h-47BFh | 6000h-66BFh | 表示用データ:題字データ |
4800h-4EBFh | 6A00h-70BFh | 表示用データ:32x16ドットキャラクデータ |
4EC0h-57FFh | 70C0h-79FFh | 表示用データ:16x8ドットキャラクデータ |
5800h-5A8Fh | 7A00h-7C8Fh | 表示用データ:1色文字データ |
5A90h-5F0Fh | 0B80h-0FFFh | 表示用データ:2色文字データ |
6000h-8CFFh | B900h-E5FFh | メインプログラム |
- | E600h-EB86h | Pasopia7用追加ロジック |
- | EB87h-ED94h | Pasopia7用Patch書き込み処理 |
ビット反転テーブル、V-RAMプレーン変換テーブル、V-RAM変換テーブルは、Pasopia7用追加ロジックの中で作成する
Pasopia7はF0FBh以降がスタック領域のため、この領域は使えない。
MZ版でF2xxhとF3xxhがデータ保存領域として使われていたがEExxhとEFxxhに移動する。
Pasopia7用Patch書き込み処理の中で、これらのコンバート処理も行う。
50面分の面データの後ろに使っていないエリアがある。
将来的に100面分のデータを対応することも考えていたのかもしれない。
0 件のコメント:
コメントを投稿