縦のライン数は一緒(というか倍)だけど、横のドット数が違うので、2ポートのRAMで乗せ換える事にしますが...
よーく考えてみると、
VDG の出力 → 254ライン分を順番に出力する を2度繰り返す。
VGA の入力 → 525ライン分を順番に入力する。
1ライン毎に乗せ換えはダメだー。
という事で、1面分の2ポートRAMを用意して乗せ換えようと考えました。
が...DE0 に搭載されているCycloneIII の内蔵RAMの容量が 500Kbit 程度しかありません。
VGA の表示エリアである640×480×12bit のRAM を用意するとなると、3.7Mbit 程度のRAMが必要になります。
いろいろ考えた結果、次のようにしました。
PC-6001 の表示エリア(256×192)→1ピクセル当たり、6ビットのRAMを用意(295Kbit)
PC-6001 の背景エリア →その行の最後のアトリビュートの値を覚えておく(192×6bit)
これで何とかなりそうです。
後は、読み出したデータを色データに変換すれば、表示が可能になります。
このようにして作成したのが、これです。
VGA出力回路 VHDLファイル
色データは、PC-6001V の初期設定のものを(勝手に)使いました。
実際にVGAに画面に表示させると、こんな感じです。
実機で画面に映ると、感激しますねー。
ただ、画面の写真だけ見ると、FPGA化から出力したか、エミュレータから出力したのか、本物のPC-6001から出力したのか、判別がつかないんですが(^^;

