2017-09-04 15:54 — asano
カテゴリー:
7セグメント表示器8桁程度ではアドレス・データを表示して1バイトずつ書き込むモニタプログラムの実行は可能でも、BASIC言語のようなシステムを動かすには英数字・記号をある程度の文字数表示できる環境が必要になります。テレタイプでもこの条件は満たせますが、高価で大きく家庭に持ち込めるようなものではありません。
やはりCRT (Cathode Ray Tube)モニタを使いたいということになるわけですが、簡単に手に入るものはテレビだけです。そこで何とかテレビに文字を表示することになります。
当時のテレビには外部入力端子はありませんので、放送電波の形式でアンテナ端子から信号を入れることになります。
この方式では電波の帯域制限・Y/C分離・ドットピッチなどの問題から実用になるのは1文字8×8ドットで横に32~40文字程度、縦に16~25行程度となります。これなら1文字1バイトとして512~1kBのメモリですみますから当時のメモリ事情でも無理なく実現できます。
当初はビデオ信号の生成回路も汎用ロジックICのカウンタ等を組み合わせて作っていましたが、専用のコントローラICも作られました。
MotorolaのMC6847 VDG (Video Display Generator)は32文字×16行の文字表示をはじめ、最大で256×192ドットのグラフィック表示が可能でした。必要とするメモリは表示モードによりますが、512~6kBです。単独でコンポジットビデオ信号が得られるほか、MC1372 Color TV Video Modulator Circuitと組み合わせることで容易にアンテナ端子に接続できます。
表示中はメモリへのアクセスが定期的に発生しますが、CPUからメモリへのアクセス機能は持っていないので、CPUからメモリへのアクセスとVDGからメモリへのアクセスを調停する何らかの回路は必要です。
入手が容易だったことから回路を自作する人も多くいました。またNECのPC-6001やTRS-80 Color Computerなどに搭載されたことでも有名です。
S68047という類似の(互換性の無い)デバイスもありました。何故こんな紛らわしい型番にしたのでしょう?
Texas InstrumentsのTMS9918 VDP (Video Display Processor)も有名でした。32文字×24行または40文字×24行の文字表示のほか最大256×192ドットのグラフィックが可能です。ゲーム用のスプライト機能をもっていたことも特徴です。
MC6847とは異なりメモリはローカルに接続され、CPUからメモリへのアクセスも面倒を見てくれます。DRAMコントローラも内蔵しているので、メモリ周りの回路はほぼ繋ぐだけで済みます。メモリは16k×1bit DRAM×8の16kBになります。
出力はNTSCコンポジットのTMS9918のほか、色差にしたTMS9928やPALのTMS9929などがありました。またDRAMコントローラを16k×1bit品から16k×4bit品へ変更したTMS9118などもありました。
これはMSXパソコンに使われたことで有名です。さらにMSX2などの後継機向けにV9938やV9958といった上位互換のデバイスも作られました。
以上はテレビ向けのコントローラICですが、HD46505などの汎用CRTC (CRT Controller)を用いることもありました。
今回はハードウェアの話が中心になったので、次回はソフトウェア面について書いてみたいと思います。
2024-02-11 訂正:
MC6847から直接コンポジット信号は得られません。コンポジットのみが欲しい場合でもMC1372は必要です。
Add new comment