##### Shinobi Library - ストアーキュー関数

# sySqStart

ストアキュー用の仮想アドレスの取得

### 書式

> `Void *sySqStart( dstArray )
> Void *dstArray
> `

### 引数

> dstArray | ストアキューの転送先アドレス

### 戻り値

> ストアキュー用の仮想アドレス

### 解説

> 物理メモリに割当てられたストアキュー用の仮想アドレスを取得します。

> Shinobi2ライブラリでは、MMU がイネーブルになっているため、ストアキュー転送用の仮想アドレスを割当てています。 ストアキュー転送を行う場合には、転送を行いたい物理アドレスを sySqStart()関数に渡し、sySqInit()関数によって割当てられた対応する仮想アドレスを取得します。 その取得したアドレスに対して32バイト分のデータを書込み、PREF 命令を発行することで、ストアキュー転送が行われます。

### 用例

>         Uint32 *sqArray;
>         Uint32 *dstArray;
>         Uint32 *srcArray;

>         testArray = (Uint32 *)DEST_ADDRESS_ALIGN32;
>         srcArray =  (Uint32 *)SRC_ADDRESS_ALIGN32;

>         sqArray = sySqStart(testArray);
>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;

>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;
>         *sqArray++ = *srcArray++;
>         prefetch((int*)((int)(sqArray-8)));

### 備考

> ストアキュー転送を行っている最中に他のストアキュー転送を行うプログラムに割込まれると、ストアキューレジスタの中身が壊れるため、転送が正しく行われません。 Ninja2ライブラリおよび Kamui2ライブラリはストアキューを使用していますので、割込み内でのストアキューの使用は禁止とします。

sySqStart

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000