### 4-9　ビジュアルメモリ用作業RAM

Dreamcastとの通信時使用される通信バッファとして、256バイト×2バンクのRAMが実装されています。Dreamcastに接続していない場合は、このRAMをアプリケーションで利用できます。

Dreamcastとデータ転送が行われているかどうかは、VSELレジスタ中のASELフラグを参照します。ASELフラグが‘1’の場合は、データ転送中です。

データ転送中にこのRAMを読み書きした場合は、データの保証はされませんので注意してください。

####

4-9-1　作業用RAM制御レジスタ

#### ビジュアルメモリ制御レジスタ（VSEL）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
VSEL | 163H | R/W | − | − | − | INCE | − | − | SIOSEL | ASEL
リセット時 | H | H | H | 0 | H | H | 0 | 0

アプリケーションは、ビット4のみ変更可能です。必ずビット操作命令を使用してください。

##### ■INCE（ビット4）：VTRBFのアドレスカウンタの自動インクリメント

VTRBFへの書き込み/読み込みを行う場合、アドレスカウンタの自動インクリメントを行なうかどうかを指定します。

‘1’をセットすると、VTRBFを読み書きした直後にアドレスカウンタが自動的に＋1されます。

‘0’にリセットすると、アドレスカウンタは現在の値を保持します。

##### ■SIOSEL（ビット1）：P1ポートの使用選択制御

P1ポート（P10〜P15）を通常の入出力ポート、同期式シリアルインターフェイス用入出力端子として使用するか、Dreamcast専用インターフェイスとして使用するかの選択をします。

##### ■ASEL（ビット0）：VTRBFアドレス入力選択制御

ビジュアルメモリとDreamcast専用インターフェイスのバッファとして使用されるVTRBFへのアクセスの選択を制御します。

#### 作業用RAMアクセスアドレス（VRMAD1，2）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
VRMAD1 | 164H | R/W | VRMAD7 | VRMAD6 | VRMAD5 | VRMAD4 | VRMAD3 | VRMAD2 | VRMAD1 | VRMAD0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
VRMAD2 | 165H | R/W | − | − | − | − | − | − | − | VRMAD8
リセット時 | H | H | H | H | H | H | H | 0

読み書きしたい作業用RAM（VTRBF）のアドレスを設定します。

VRMAD1には、アドレスの下位8ビットを指定します。VRMAD2にはバンクを指定します。

VSELのビット4を‘1’にセットしている場合、VTRBFを読み書きするたびにVRMADはインクリメントされます。

##### ■作業用RAM（VTRBF）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
VTRBF | 166H | R/W | VTRBF7 | VTRBF6 | VTRBF5 | VTRBF4 | VTRBF3 | VTRBF2 | VTRBF1 | VTRBF0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

VRMADで指定されたアドレスのデータを読み書きするためのレジスタです。

このレジスタへ書き込みを行った場合、VRMADで指定された作業用RAMのアドレスにデータが書き込まれます。

このレジスタの読込みを行った場合は、VRMADで指定された作業用RAMのアドレスのデータが読み込めます。

VSELのビット4が‘1’にセットされていると、このレジスタを読み書きした直後に、VRMADが自動的にインクリメントします。

####

4-9-2　作業用RAMへのアクセス

作業用RAMへアクセスするには、VRMAD1，2レジスタにアクセスしたい作業用RAMのアドレスを格納し、VTRBFを読み書きすることで作業用RAMのデータにアクセスできます。

VRMAD1，2レジスタには、オートインクリメント機能が実装されているので注意してください。 オートインクリメントする場合は、VSELのINCEビットを1にセットします。オートインクリメントしない場合は、INCEビットを0にリセットします。

####

4-9-3　作業用RAM用アドレスレジスタ使用時の注意事項

作業用RAMへのアクセスの様子を図79に示します。

アプリケーションから作業用RAMに対してアクセスする場合、VRMAD1，2レジスタに作業用RAMのアドレスを指定します。

VSELレジスタのINCEフラグが‘1’にセットされている場合、VTRBFを読み書きするたびに、その直後にVRMADの値が自動的にインクリメントされます。VSELレジスタのINCEフラグに注意してプログラムしてください。

▽ 作業用RAMへのアクセス(図79)

[←] | [INDEX] | [→]