V9938

**V9938**はアスキー、マイクロソフト、ヤマハの三社で開発された、TMS9918上位互換のビデオディスプレイプロセッサ(VDP)。別称**MSX-VIDEO**。MSX用途外ではE-VDP-Iと呼ばれることがある。

## 概要
MSX2規格に取り込まれる事となった。MSX以外にも、比較的簡単、安価にテレビ画面を利用した画像表示が出来ることから、キャプテンシステム端末、アーケードゲーム機、家庭用ビデオ編集機、囲碁通信ネットワーク端末などで採用された。

他のパソコン用途としては、セガ・エンタープライゼスから1986年7月発売のセガAIコンピュータに採用され、1989年には雑誌『Oh!FM』でFM-7シリーズ用のV9938ビデオボード製作記事が掲載された。

アスキーの西和彦やマイクロソフトのビル・ゲイツらの要求に応える形でヤマハ側が開発していった。主にビル・ゲイツはコスト面や横80桁表示、アスキー側はビットマップや色数と表示モードの増加、VDPコマンドなどを要請した。スプライトの強化などゲーム向きの機能には無関心だったという。

後にセガのゲーム機など画像LSIの開発を手掛けることになるヤマハにとって、初の画像LSIだった。TMS9918の上位互換チップでありながら、その開発元のテキサス・インスツルメンツ社の協力は得ず、公開された技術情報からヤマハが独自に実現している。そのため、VRAM容量判定のフラグなど一部挙動やアクセスタイミングが異なるほか、色の分解能並びに、初期パレットの設定値を原因として、表示色には差異がある。なお、設計したヤマハ側は、色の違いを認識していなかったことを、後年の取材に答えている。

上位互換のチップにV9958(E-VDP-II)がある。

## 主な仕様
thumb|V9938(Ver.C)外観
thumb|V9938(Ver.C)外観(捺印,パッケージ相違版)
;（**太字はVRAM128KBの場合のみ**）
*VRAM:16KiB～192KiB。CPUからはVDPを通じてVRAMにアクセス可能。DRAMリフレッシュ機能があり、DRAMを直接接続可能。
**表示に使用できるのは、128KiB迄。それ以上の領域はバックバッファなど、用途は限られる。MSX2では規格として64KiB若しくは128KiBとなっており、128KiB以上の部分についてはVDPの直接制御によって使用は可能だが、システムからのサポートは無く対応しているソフトウェアも少ない。
**TMS9918互換機能のみを使う場合は無条件にVRAM16KiBとして動作する。ヤマハSX-100等、後期に発売されたMSX1では、TMS9918をV9938で代用したモデルも存在した。
*解像度・色：TMS9918の全機能 + RGBビットマップ（パックドピクセル）表示
**256ドット×212ライン（または192ライン）
***TMS9918のすべての画面モード + 512色中16色のパレット機能
***拡張機能
***パレット機能を使った512色中16色、2画面（**4画面**）
*****パレット機能なしの256色同時、2画面**
**512ドット×212ライン
***パレット機能を使った512色中4色、2画面（**4画面**）
*****パレット機能を使った512色中16色、2画面**
**インターレース走査モードと2画面分のVRAMの使用により最大512ドット×424ドットの表示も可能。
*スプライト：8×8ドットまたは16×16ドットが一画面最大32枚。横方向の同時表示枚数は4枚から8枚に強化。TMS9918では単色だった表示色は拡張された画面モードにおいて、横16ドットに対して1ラインごとに1色、スプライトを複数枚重ねて論理和で色数を増やすことも可能（2枚重ねで3色、3枚重ねで7色）。
*縦方向の「ハードウェア・スクロール」機能と、上下左右の画面位置アジャスト機能
**スクロールは全てのプレーンがスプライトも含め同期してスクロールする。TMS9918由来の特定のスプライトを非表示にする機能が縦座標の特定値（SCREEN3以下は208、それ以降は216）を利用しているため、表示したままにするためには該当座標を避けた実装にする必要があった。
**横方向のハードウェア・スクロール機能はない。
**MSX2（V9938）でアジャスト機能とキャラクタグラフィックモード（拡張スプライト使用モード）を使ってドット単位の横スクロールを実現したゲームソフトも発売された（ヘルツ"サイコワールド"・"ハイディフォス"、コナミ"スペースマンボウ"等）。
*ビットマップの画面モードで使用可能なCPUの動作と並列にVRAMをアクセスする「VDPコマンド」機能 
**処理速度は、当時組み合わされることの多かった3.58MHzのZ80で同容量のVRAMを操作する場合と大差なかったが、CPUと並行処理が可能なため、機能の増加に伴うプロセッサ側の処理の軽減には一役買う事になっている。
**VRAM間の矩形領域の転送、矩形の塗りつぶし、直線やドットの描画、メインメモリとVRAM間のデータ転送などの機能が存在した。
**AND,OR,XOR,NOTなどの論理演算と、カラーコード0を透過するTつきの論理演算も可能。
**論理演算をせずVRAMのバイト単位で高速アクセスするコマンドもあった。
*走査線検出割り込み機能（ラスタ割り込み）
**走査線割り込みを発生させる縦位置を指定して割り込み信号を発生させることができ、割り込み処理内でページ切り替え、縦スクロールなどを行えば「ラスタ分割」表示や、画面モードの切り替えをすることが可能。
***ラスタースクロール等の一画面中で複数回数割り込みを発生させる処理もアジャスト機能を使用することで実現は可能だが、MSX2/2+のCPU能力では割り込み処理でほとんどのCPU処理が埋まってしまい実用的ではなく、単純な画面の上下二分割程度に使われることが多かった。
**ラスタ割り込みでパレットを切り替え、同時に表示する色数を増やしたソフトもあった。
*スーパーインポーズ機能: 外部ビデオ画面との合成表示が可能。別売のデジタイザーなどと組み合わせて使用する。
*NTSCビデオ出力に加え、PALビデオ出力、アナログRGB出力もサポート
**MSXではEIAJ規格の21ピンコネクタ（RGBマルチ）が使用された。本体の出力はDIN8ピン。
*マウス／ライトペン専用インターフェース搭載。なお、MSX2では未使用。
*アクセスタイミングや信号の入出力電圧の違いにより、バージョンはA～Cまである。
*CPUとのインターフェイスとは別に、カラーバスという8ビット幅の入出力インターフェイスを搭載している。このバスは前述の外付けデジタイザとは異なり、CPUなどからのデータ転送無しにVDPが直接デジタルデータをVRAMに取り込むことができる。また、前述のマウスインターフェイスはカラーバスを利用する。カラーバスを利用して外部にカラーパレットを設置することも可能。
*V9938にはコプロセッサがあるが、関連資料に記載が無く詳細は不明。MSX2モードを搭載したキャプテン端末「NTTキャプテンマルチステーション」で使用されている。

## 脚注

### 出典

## 関連項目
* TMS9918 - ベースとなったVDP。
* TI-99/4A - V9938を使用した拡張ボードが設計、販売されている。
* セガ・マークIII - V9938とは別の系譜の上位互換チップである315-5124を搭載。
* V9958 - 上位チップ

## 参考資料
*「V9938 MSX-VIDEO テクニカルデータブック」アスキーマイクロソフトFE本部 日本楽器製造株式会社 編 ISBN 4-87148-415-7
*「V9938(E-VDP-I) カタログ」ヤマハ、カタログNo.LSI-1199383 1991.09