PC-6001 のFPGA化計画で、とりあえず画面周りから手を付けてみました。
MC6847 のドキュメントを探してきて、読んでみる。
PC-6001 の周辺回路と併せていろいろ考えてみるが、動作が判りにくい。
うーんと読み込んだ結果、以下の通りのようです。
・カウンタ関係は自走。
・水平方向に、227.5 クロックで1ラインを構成。
・垂直方向に、262ラインで1画面。ただし、2画面分を送信して、1フレームの完成(インターレース)。
・インターレースの時は、2画面分出力してから1ライン分出力。合計で525ライン。
・出力は、Y、C-A、C-B、でアナログ信号で出力される。Y はアナログ6値、C-A はアナログ4値、C-B はアナログ3値。
・水平方向の同期用に、HSN信号を出力
・垂直方向の同期用(というか、フレームの右隅から、FSNがアサートされ、フレームが開始される随分前にネゲートされる。
・RPN は外部キャラクタROM 用のロードパルス。キャラクタが縦方向に12ラインなので、外部カウンタが0〜11になるように制御するためのパルス。
・V-RAM へのアクセスのためのアドレスA(12:0)を出力している。
・アドレスの下位A(4:0)、もしくはA(3:0) は水平方向で4クロック、もしくは8クロックで+1される。
・アドレスの下位が2種類あるのは、画面モードによる。256×192 で考えた場合、8ドット1バイトの時は、A(4:0) を使い、4クロックで+1され、16ドット1バイトの場合は、A(3:0) を使い、8クロックで+1される。
・アドレスの上位は、1ライン描画した後に変化される。
で、肝心のV-RAMへのアドレスの変化の仕方の記載が全くない。また、HSN、FSN、A(13:0) の相互のタイミング関係に関しても、明示されていない。
仕方ないので、周辺回路と併せて考えた結果、こんな感じになるようです。
6847 タイミング
これを元に作ったのがこれです。
6847 VHDLファイル
6847 VHDLファイル(下位階層1)
6847 VHDLファイル(下位階層2)
アナログ信号は出せないので、Y、C-A、C-B、はとりあえずダミー。映像データの出力は、DISPDとDISPMDの2種類で、DISPDは画面の色データ、DISPMDは画面のモードになります。
2011年09月30日
この記事へのコメント
コメントを書く

