「V9958」は、MSX2+用のVDP(Video Display Processor)として開発されたVLSIで、TMS9918A(MSXのVDP)およびV9938(MSX2のVDP)とソフトウェア上位互換性があります。V9958は株式会社アスキーとヤマハ株式会社によって共同開発され、V9938に加えて以下の特徴があります。
- YJK方式により最大19,268色を同時に表示可能
- ハードウェアによる水平スクロール
- 全表示モードでコマンド機能を使用可能
この章ではV9938に対して変更・追加された機能を解説します。この章で説明のない部分についてはV9938と同じ仕様です。
8.1 レジスタ
8.1.1 追加されたレジスタ
8.1.2 変更されたレジスタ
Status register 1のID番号を「2」とし、V9958であることを表します。V9938では「0」が返ってきます。
8.2 V9958の機能
V9958ではV9938を拡張して、新たな機能を加えています。追加された機能には以下のようなものがあります。
8.2.1 水平スクロール
R#25 | MSK | 0=左側8ドットはマスクされない(初期値) |
1=左側8ドットをマスクし、ボーダーカラーを表示する | ||
R#27の値が「0」の場合は、マスクする必要ありません(GRAPHIC5、6では16ドットのマスクになる)。 | ||
SP2 | 0=水平方向画面サイズを1ページとする(初期値) | |
スクロールは1ページ内で行われ、画面上には左側の隠れた部分が右側にも表れます。 | ||
1=水平方向画面サイズを2ページとする | ||
スクロールは2ページで行われ、スクロールによって裏のページが表れます。 | ||
HO8〜HO0 | 静止画の水平方向スクロール量をドット単位で設定する(GRAPHIC5、6は2ドット単位のスクロールになる) |
水平スクロール時のVRAMアクセスは8ドット単位で行われ、R#27の値が「0」以外のときは、表示用のデータが不定になります。この不定のデータを表示させないためにマスクが必要になります。
HO8〜HO3に対する表示画面
左方向へ、8ドット単位(GRAPHIC5,6は16ドット単位)で設定値だけシフトします。
注意 |
HO8は無視されます。
注意 |
SP2=1のときは、パターンネームテーブルの先頭アドレスは、奇数ページが選択されるように設定します。
各テーブルのベースアドレスは次のようになります。
パターンネームテーブル(PNT) | 0〜31 偶数ページ |
32〜63 奇数ページ | |
パターンジェネレータテーブル(PGT) | ベースアドレス設定値 |
スクロールによって変化しない | |
カラーテーブル(CT) | ベースアドレス設定値 |
スクロールによって変化しない |
HO2〜HO0に対する表示画面
右方向へ、1ドット単位(GRAPHIC5,6は、2ドット単位)で設定値だけシフトします。
図4.64のように、左へ126ドットスクロールするときは、以下のようになります。
R#26 = 128 = 8×16 (左へ128ドット) R#27 = 2 (右へ2ドット)
8.2.2 ウエイト機能
注意 |
ウエイト機能はMSXでは使っていません。
このビットを「1」にするときは、その前にダミーのVRAMアクセスを行って下さい。
8.2.3 コマンド機能
2)アトリビュートがある場合(YAE=1)
図4.66 アトリビュート有りのYJKデータフォーマット
A=0 YAE=0の場合と同じ(初期値) Y、J、Kは全てYJK方式のデータとなります。 A=1 Y1〜Y4はそれぞれカラーコードとなり、カラーパレットを通してRGB出力されます。JとKはYJK方式のデータとなります。
3)YJKとYAEの組み合わせ
YJK YAE VRAM データ 0 x 従来のカラーパレット経由 1 0 YJK→RGB変換テーブル経由 1 A=0……YJK→RGB変換テーブル経由 A=1……カラーパレット経由
図4.67 YJKとJAEの組み合わせ
8.2.5 V9958では削除された機能
- コンポジットビデオ出力
- マウス・ライトペンインターフェイス
この変更に伴い、次の内部レジスタのビット(
Status Register 1
FL ライトペン光検出フラグ LPS ライトペン・マウススイッチ
Mode register 0
IE2 ライトペンによる割込み (MSX2はV9938のライトペン機能は使用していない)
Mode register 2
MS マウスで使用 LP ライトペンで使用 (MSX2はV9938のマウス・ライトペン機能は使用していない)