2011年09月28日

PC-6001の回路図の解析(6)

 (回路図が手元にあることを前提に書いています)

・VDG関連(メイン・ブロック左半分)

 左側の下の方に鎮座しているM5C6847が、VDG(Video Display Generator)で、画面表示を一手に担っているチップである。

 その上のμPD2332が、キャラクタROMで、6847からとCPUからと両方アクセスが可能なようにセレクタやらバスドライバーなどが付いている。

 μPD2332の左のLS157×2が、キャラクタROMのデータとグラフィックのデータを選ぶセレクタである。
 μPD2332の右のIC63、IC4(LS367)がバスドライバー、その下のLS161は、キャラクタROMの縦方向のアドレスを生成しているカウンタ、LS161の右のLS157が、6847とCPUのアドレスを選択しているセレクタである。
 6847 の右のLS374のさらに右のLS374 は、DRAMから読み出したデータをラッチするFFである。

 (この辺りの回路はドンくさいようで、無駄な回路があるようです)


 6847 のすぐ右のLS374は、DRAMから読み込んだアトリビュートデータをラッチするFFである。

 この辺りが、PC-6001独特のようで、元々6847 にはアトリビュートという概念はないようである。
 つまり、アトリビュートは元々固定値で、画面の一部で変えるようには出来ていないようである。

 そのため、6847 は、読み出しアドレスを1回しか出力しない。

 PC-6001の回路では、この読み出しアドレスを加工して、1アクセスに対して2回アクセスを行って、アトリビュートと画面データを読み出している。

 そのための回路の1つは、6847 の左のLS257とその間のゲート数個で、これはアドレスを加工している。
 アドレスの加工は、次の通り。

 6847 アドレス → A(12:9)="0000" 固定 → アトリビュートアドレス
 6847 アドレス → A(12:9) を+1する  → データアドレス

 例えば、6847 アドレスが、17FFHの場合(スクリーン3、4の最終アドレス)、
 アトリビュートアドレス → 01FFH
 データアドレス     → 19FFH

 となって、マニュアルなどに記載されている値と一致する。


 2回読み出しのためのもう一つは、1アクセス時に、CASを2回出力することで実現している。

 一番左下のLS161が、RAS、CASの生成や、各ラッチの生成のためのタイミングを作っている。このカウンタの出力をデコードすることにより、1アクセス(4clock@3.58MHz)でRASを1回、CASを2回出力している。この辺りの回路が、下の方のLS74が2つ並んでいる箇所である。

 で、また回路図の間違い。下の方ある、BUSRQN を出力している LS74のクロック信号をドライブする素子がない。

 前の間違いと同様に、十字交差のドット抜けのようで、下の方に2つ並んでいるLS74の右の上のLS04の出力が、そのクロックになる。


 6847 のすぐ下のμPD4040、その右のNANDたすきがけ×2、その右のμPD4040は、それぞれ BUSRQN を生成する回路である。

 6847 のHSN、FSN から、描画するタイミング(=DRAMにアクセスしたいタイミング)を作っている。左のμPD4040 が垂直側の描画エリアを生成し、右のμPD4040 が垂直側の描画エリアを生成している。

 垂直側は、エリアのデコード値がぴったり描画エリアと同じになるが、水平側は、描画エリアより若干広くなっている。これは、BUSRQN → BUSACKN のタイミングが遅れる事を想定しているようである。



posted by えすび at 19:10| Comment(0) | P6解析:回路全般 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。