トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

3章 レジスタの機能

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 この章では、VDPを制御するコントロールレジスタ、ステータスレジスタについて説明します。

 3.1 コントロールレジスタ#0〜#23、#32〜#46(Write only)

3.1.1 モードレジスタ

 モードレジスタは各種動作モードを設定するレジスタで、コントロールレジスタ#0、#1、#8、#9に配置されています。

画像ファイルが存在しません。

DG 1のとき、カラーバスを入力モードにして、データをVRAMに取り込む
(デジタイズ機能を持ったMSX2でのみ使用可能)
IE2Interrupt Enable2(1のとき、ライトペンによる割り込みを可能にする)
IE1Interrupt Enable1(1のとき、水平帰線による割り込みを可能にする)
M5 表示モードの設定に使用する
M4 表示モードの設定に使用する
M3表示モードの設定に使用する

 IE2はライトペン割り込み用のビットです。MSXではこの機能は使用しないので、常に「0」にして下さい。

Mode register 1

画像ファイルが存在しません。

BL 1=画面表示、0=画面非表示
IE0Interrupt Enable0(1のとき、垂直帰線による割り込みを可能にする)
M1 表示モードの設定に使用する
M2 表示モードの設定に使用する
SI スプライトのサイズ 1=16×16、0=8×8
MAGスプライトの拡大 1=拡大する、0=拡大しない

Mode register 2

画像ファイルが存在しません。

MS 1=マウスを使用する(カラーバスは入力モード)、0=マウスを使用しない(カラーバスは出力モード)
LP 1=ライトペンを使用する、0=ライトペンを使用しない
TP カラーコード0の色をカラーパレットの色にする
CB 1=カラーバスを入力モードにする、0=カラーバスを出力モードにする
VR VRAMの種類を選択する
1=64K×1bitまたは64K×4bit、0=16K×1bitまたは16K×4bit
SPD1=スプライト非表示、0=スプライト表示
BW 1=白黒32階調、0=カラー(composite encoderにのみ有効)
BWはMSXでは使用していません。

 MSはライトペン用の、LPはマウス用のれじすたです。MSXではこの機能は使用していないので、常に「0」にして下さい。

Mode register 3

画像ファイルが存在しません。

LN 1=縦212ドット表示、0=縦192ドット表示
S1 同期モード選択(「7.4 同期モードの選択」参照)
S0 同期モード選択(「7.4 同期モードの選択」参照)
IL 1=Interlace(完全NTSCタイミング)、0=Non Interlace(不完全NTSCタイミング)
EO 1=Even field/Odd fieldで2枚の絵を交互に表示、0=Even field/Odd fieldで同じ絵を表示
NT 1=PAL(313line)、0=NTSC(262line) RGB出力のみ有効
DC 1=DLCLK端子を入力モードにする、0=DLCLK端子を出力モードにする

3.1.2 テーブルベースアドレスレジスタ

 V9938に対してVRAM上の各テーブルの先頭アドレスを宣言するためのレジスタ群です。
 表示モードによっては、設定できるデータの値に制限(実際のアドレスと異なる場合)があるので注意して下さい。詳しくは、各表示モードの解説を参照して下さい。

Pattern name table base address register

画像ファイルが存在しません。

Color table base address register low

画像ファイルが存在しません。

Color table base address register high

画像ファイルが存在しません。

Pattern generator table base address register

画像ファイルが存在しません。

Sprite attribute table base address register low

画像ファイルが存在しません。

Sprite attribute table base address register high

画像ファイルが存在しません。

Sprite pattern generator table base address register

画像ファイルが存在しません。

3.1.3 カラーレジスタ

 V9938の表示色、ブリンクなどを制御するためのレジスタ群です。

Text color/Back drop color register

画像ファイルが存在しません。

TC3〜TC0 TEXT1、TEXT2モードにおけるテキストの色を指定
BD3〜BD0 GRAPHIC7以外の表示モードにおけるバックドロップの色を指定
BD7〜BD0 GRAPHIC7モードにおけるバックドロップの色を指定

Text color/Back color register

画像ファイルが存在しません。

 TEXT2モードにおいてパターンにブリンクの属性がついているときは、このレジスタで指定された色とR#7で指定された色が交互に表示されます。

T23〜T20 パターンの1の部分の色を指定
BC3〜BC0 パターンの0の部分の色を指定

Blinking period register

画像ファイルが存在しません。

 GRAPHIC4〜GRAPHIC7のビットマップモードとTEXT2モードで、2ページの画面を交互に表示される(ブリンクさせる)ためのレジスタです。このレジスタにデータをセットし、表示ページを奇数ページにセットするとブリンクを開始します。表示4.3を参照して下さい。

ON3〜ON0 偶数ページの表示時間(ビットマップモード時)
R#7の色の表示時間(TEXT2モード時)
OF3〜OF0 奇数ページの表示時間(ビットマップモード時)
R#12の色の表示時間(TEXT2モード時)

Color burst register 1

画像ファイルが存在しません。

Color burst register 2

画像ファイルが存在しません。

Color burst register 3

画像ファイルが存在しません。

 カラーバーストレジスタには、それぞれ上記の値がパワーオン時にプリセットされます。この値を全て0にするとコンポジットビデオ出力の色成分の信号を消すことができます。R#20〜#22はMSX2では使用しません。

補足

MSXのコンポジットビデオ出力は、多くの場合V9938のRGBビデオ出力から外部回路により作成されます。したがって、コンポジット出力に影響のある機能は有効ではないとお考え下さい。

3.1.4 ディスプレイレジスタ

 CRT上の表示位置を制御するレジスタ群です。

Display adjust register

画像ファイルが存在しません。

 CRT上の表示位置を補正するためのレジスタです。

画像ファイルが存在しません。

Display offset register

画像ファイルが存在しません。

 表示開始ラインをセットするためのレジスタです。このレジスタの値を変えることによって画面の縦スクロールを行うことができます。ただし、スクロールは256ライン単位で行われるので、スプライトテーブルなどは別のページに置かなければなりません。
画像ファイルが存在しません。
図4.1 ディスプレイオフセットレジスタの設定例

Interrupt line register

画像ファイルが存在しません。

 V9938では、CRTが特定の走査線の表示を終えたときに割り込みを発生させることができます。このレジスタに割り込みを発生させる走査線の番号をセットし、R#0のビット4に「1」をセットします。
 詳しくは、添付のフロッピーディスクの中に走査線割り込みのサンプルプログラムが入っていますので、参照して下さい。

3.1.5 アクセスレジスタ

 V9938のレジスタやVRAMをアクセスするときに使用するレジスタ群です。

VRAM Access base address register

画像ファイルが存在しません。

 V9938のVRAMをアクセスするときに、アドレスの上位3ビットをこのレジスタにセットします。
 また、このレジスタの値は、VRAMをアクセスするとA13からのキャリーを受けて自動的にインクリメントされます。ただし、GRAPHIC1、GRAPHIC2、MULTICOLOR、TEXT1モードではインクリメントしません。

Status register pointer

画像ファイルが存在しません。

 V9938のステータスレジスタ(S#0〜S#9)を読み出す際、このレジスタにステータスレジスタの番号(0〜9)をセットします。

Color palette address register

画像ファイルが存在しません。

 V9938のカラーパレットにアクセスする際、このレジスタにパレットの番号をセットします。

Color register pointer

画像ファイルが存在しません。

 V9938では、このレジスタの値をポインタとして他のレジスタをアクセスすることができます。また、AIIビットの指定によって、内容を自動的にインクリメントさせることができます。

3.1.6 コマンドレジスタ

 V9938のコマンドを実行するときに使用するレジスタ群です。詳しくは5章を参照して下さい。

Source X low register

画像ファイルが存在しません。

Source X high register

画像ファイルが存在しません。

Source Y low register

画像ファイルが存在しません。

Source Y high register

画像ファイルが存在しません。

Destination X low register

画像ファイルが存在しません。

Destination X high register

画像ファイルが存在しません。

Destination Y low register

画像ファイルが存在しません。

Destination Y high register

画像ファイルが存在しません。

Number of dot X low register

画像ファイルが存在しません。

Number of dot X high register

画像ファイルが存在しません。

Number of dot Y low register

画像ファイルが存在しません。

Number of dot Y high register

画像ファイルが存在しません。

Color register

画像ファイルが存在しません。

Argument register

画像ファイルが存在しません。

Command register

画像ファイルが存在しません。

 3.2 ステータスレジスタ#0〜#9(Read only)

 V9938の状態を読み出すための、読み出し専用のレジスタ群です。

Status register 0

画像ファイルが存在しません。

F 垂直帰線割り込みフラグ
S#0を読み出すとリセットされる
5S 第5スプライトフラグ
1水平線上にスプライトが5個(GRAPHIC3〜GRAPHIC7モードは9個)並ぶとリセットされる
C 衝突フラグ
スプライトが衝突するとセットされる

5th sprite# 第5(第9)スプライトの番号がセットされる

Status register 1

画像ファイルが存在しません。

FL ライトペンスイッチ(ライトペンフラグがセットされているとき)
ライトペンが光を検出するとセットされる。このとき、IE2がセットされていると割り込みを発生する。S#1を読み出すとリセットされる。
マウススイッチ2(マウスフラグがセットされているとき)
マウスのスイッチ2が押されたらセットされる。S#1を読み出してもリセットされない。
LPSライトペンスイッチ(ライトペンフラグがセットされているとき)
ライトペンのスイッチが押されるとセットされる。S#1を読み出してもリセットされない。
マウススイッチ1(マウスフラグがセットされているとき)
マウスのスイッチ1が押されたらセットされる。S#1を読み出してもリセットされない。
ID#V9938のID番号
FH 水平帰線割り込みフラグ
水平帰線(R#19で指定)による割り込み(フラグIE1ガセットされているとき)が発生するとセットされる。S#1を読み出すとリセットされる。

FLとLPSはライトペン用のレジスタですがMSXではこのインターフェイスは使用していないので、ビット6、7は意味を持ちません。

Status register 2

画像ファイルが存在しません。

TR 転送レディフラグ
CPU to VRAM、VRAM to CPUなどのコマンドを実行するときは、CPUはこのフラグを見ながらデータを読み書き(転送)する。1のとき転送可。
VR 垂直帰線期間フラグ
垂直帰線期間中は1になる。
HR 水平帰線期間フラグ
水平帰線期間中は1になる。
BD 境界色発見フラグ
サーチコマンドの実行で、境界色または非境界色を発見したら1になる。
EO 表示フィールドフラグ
0=第1フィールド、1=第2フィールド
CE コマンド実行フラグ
コマンドを実行中は1になる。

Column register low

画像ファイルが存在しません。

Column register high

画像ファイルが存在しません。

Row register low

画像ファイルが存在しません。

Row register high

画像ファイルが存在しません。

 これらのレジスタには、スプライトの衝突座標などがセットされます。詳しくは「6.2.8 スプライトの衝突」をご参照下さい。

Color register

画像ファイルが存在しません。

 POINT、VRAM to CPUなどのコマンドを実行すると、VRAMのデータがこのレジスタにセットされます。

Border X register low

画像ファイルが存在しません。

Border X register high

画像ファイルが存在しません。

 サーチコマンドで発見した境界色または非境界色のX座標が、このレジスタにセットされます。