レトロPCを Raspberry Pi Pico2 でパワーアップする その3
Pico2 でレトロPCをパワーアップする作戦第3弾
今回のターゲット
今回のターゲットは SHARP の MZ-1500 です。 1500 にはいろいろ拡張可能なカードがあるのですが、全部盛りの拡張カードを目指します。
基本構成
いつものように WeAct studio の RP2350B CoreBoard のお世話になります。 1500 の拡張スロットには DMA 関係を除く一通りの信号が出ているので、 ほぼ全結線で対応します。
IO アクセス
1500 の拡張カードの多くは Z80 の IO を 16bit アクセスで使っています。
これは out (c),a を実行すると実際には BC レジスタの内容がアドレスバスに出てくるというものです。
今回てんこ盛りにした関係上 SRAM の容量が不足したため、漢字 ROM と辞書 ROM は直接フラッシュから読み出すようにしています。 Pico では XIP という機構を使って、フラッシュの読み出しを隠蔽していますが、 CPU のキャッシュ上にないデータを読み出すと、フラッシュの読み出しが発生しおよそ 1us の時間がかかります。 そのままでは、Z80 の IO アクセスに間に合わないので、Z80 に対して WAIT を発生させるようにしています。
VGA 出力
MZ-700 には PCG-700 というサードパーティー製の周辺機器があって、 一部のゲームに使用されています。 1500 では PCG-700 が接続できないので、そういうゲームが使えたら良いと思って作ったのが、 簡易 VGA 出力機能です。
これは、MZ-1500 エミュレータの画面出力部分を使って、仮想 VRAM への書き込みを Z80 バスの監視という形で実現しています。