メモリマップ

モニタ起動時のメモリマップ

 電源を投入してモニタが起動した時点のMZ-700のメモリマップは左図のようになっています。

 MZ-700は64KバイトのRAMを搭載しています。電源投入時、0000h〜0FFFh、D000h〜FFFFh の範囲は IPL ROM および VRAM・メモリマップドI/O・拡張ROM領域になっており、該当範囲の RAM は裏に隠れています。1000h〜11FFh の範囲の RAM は IPL ROM がワークエリアとして使用しています。

 モニタから起動するマシン語プログラムを作ることを考えるなら、「1200h〜CFFFhの範囲のメモリを使用可能」ということだけを押さえておけば十分です。マシン語プログラムを起動した後にモニタに戻るつもりがないなら(ほとんどの場合はそれで問題ありません)、起動後はすべてのメモリを自由に使ってかまいません。

 モニタからロードできるのは1200h〜CFFFhの範囲、最大47.5Kバイトです。それ以外の範囲(0000h〜0FFFh、D000h〜FFFFhの裏RAM)にデータを置きたい場合は、2段ロードにするなどの方法をとります。


バンク切り替え

 0000h〜0FFFh のIPL-ROM領域、および D000h〜FFFFh のVRAM・メモリマップドI/O・拡張ROM領域は、バンク切り替えでRAMに切り替えることができます。バンクを切り替えるためには、下の各I/OポートにOUT命令で出力します。
アドレスR/W説明
0000h-0FFFhD000h-FFFFh
E0hWRAM(変化なし)
E1h(変化なし)RAM
E2hIPL ROM(変化なし)
E3h(変化なし)VRAM・I/O・ROM
E4hIPL ROMVRAM・I/O・ROM
 OUT (0E0h),A とすると、0000h〜0FFFh の IPL ROM は裏に隠れ、0000h〜0FFFh の RAM をアクセスできるようになります。
 OUT (0E2h),A とすると、0000h〜0FFFh の RAM は裏に隠れ、0000h〜0FFFh の IPL ROM をアクセスできるようになります。
 I/Oポートに出力するAレジスタの値はなんでもかまいません。

MZ-1500: リセット時の注意点

 MZ-1500のモニタ9Z-502Mは、リセット時に C000h〜C02Fh の範囲のメモリを破壊してしまいます。
戻る