English
PROGRAMMER'S GUIDECD通信I/F(CDパート)(CDパート)
戻る進む
CD通信インタフェースユーザーズマニュアル(CDパート)

関数詳細-7


8.2.7 バッファ入出力

 バッファ入出力の各機能(セクタデータの取り出し、消去、書き込み、複写、移動)は、コネクタ接続の処理を含んでいます。
 つまり、1回のコマンド発行で、デバイスとセレクタの接続、セクタの流入出という複合処理をします。区画出力コネクタに接続済みのコネクタは切断されます。
 バッファ入出力の動作中に、他のデバイスやセレクタによってコネクタが切断されると、エラーが発生します。 (「5.3.4 セレクタに関する注意事項」を参照)



Title

関数仕様

Function

セクタ長の設定

Function Name[SR]

CDC_SetSctLen

No

7.1

 書 式
Sint32 CDC_SetSctLen(Sint32 getslen, Sint32 putslen)
 入 力
getslen
:取り出し時のセクタ長
putslen
:書き込み時のセクタ長
 出 力
なし
 関数値
エラーコードを返します。 終了フラグ ESELフラグ
 機 能
次の場合における、1セクタの長さ(セクタ長)を設定します。
・セクタデータを取り出す(CDバッファ→ホスト)
・セクタデータを書き込む(ホスト→CDバッファ)

 (1)セクタ長
定数名
説 明
CDC_SLEN_2048
2048バイト(ユーザデータ)……初期値
取り出し時、モード2フォーム2ならば2324バイト
CDC_SLEN_2336
2336バイト(サブヘッダまで)
CDC_SLEN_2340
2340バイト(ヘッダまで)
CDC_SLEN_2352
2352バイト(セクタ全体)
CDC_SLEN_NOCHG
設定を変更しない
 備 考
設定した「取り出し時のセクタ長」は、 実データサイズの計算(CDC_CalActSiz)にも反映されます。
実データサイズの計算中や、セクタデータの転送中( CDC_GetSctData, CDC_GetdelSctData, CDC_PutSctData関数の処理中)に、セクタ長を変更してはいけません。



Title

関数仕様

Function

セクタデータの取り出し

Function Name[SR]

CDC_GetSctData

No

7.2

 書 式
Sint32 CDC_GetSctData(Sint32 bufno, Sint32 spos, Sint32 snum)
 入 力
bufno
:バッファ区画番号
spos
:セクタ位置(CDC_SPOS_END:区画最後のセクタを示す)
snum
:セクタ数(CDC_SNUM_END:sposから区画最後までのセクタ数を示す)
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
EHSTフラグ(CDC_DataEnd関数の実行後、1になる)
 機 能
バッファ区画の指定セクタ範囲からセクタデータを取り出します。
1セクタの長さは、セクタ長の設定(CDC_SetSctLen)で変更できます。
 備 考
関数実行後、データを転送して取り出す必要があります。



Title

関数仕様

Function

セクタデータの消去

Function Name[SR]

CDC_DelSctData

No

7.3

 書 式
Sint32 CDC_DelSctData(Sint32 bufno, Sint32 spos, Sint32 snum)
 入 力
bufno
:バッファ区画番号
spos 
:セクタ位置(CDC_SPOS_END:区画最後のセクタを示す)
snum 
:セクタ数(CDC_SNUM_END:sposから区画最後までのセクタ数を示す)
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
EHSTフラグ
 機 能
バッファ区画の指定セクタ範囲からセクタデータを消去します。
 備 考
データを消去すると、それ以降のセクタ位置は順次繰り上がります。



Title

関数仕様

Function

セクタデータの取り出し消去

Function Name[SR]

CDC_GetdelSctData

No

7.4

 書 式
Sint32 CDC_GetdelSctData(Sint32 bufno, Sint32 spos, Sint32 snum)
 入 力
bufno
:バッファ区画番号
spos 
:セクタ位置(CDC_SPOS_END:区画最後のセクタを示す)
snum 
:セクタ数(CDC_SNUM_END:sposから区画最後までのセクタ数を示す)
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
EHSTフラグ(CDC_DataEnd関数の実行後、1になる)
 機 能
バッファ区画の指定セクタ範囲からセクタデータを取り出し、消去します。
1セクタの長さは、セクタ長の設定(CDC_SetSctLen)で変更できます。
 備 考
関数実行後、データを転送して取り出す必要があります。
データを全て取り出さずに転送終了しても、指定したセクタ範囲のデータは全て消去されます。



Title

関数仕様

Function

セクタデータの書き込み

Function Name[SR]

CDC_PutSctData

No

7.5

 書 式
Sint32 CDC_PutSctData(Sint32 filtno, Sint32 snum)
 入 力
filtno
:絞り番号
snum
:セクタ数
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
EHSTフラグ(CDC_DataEnd関数の実行後、1になる)
 機 能
指定した絞りにセクタデータを書き込みます。
1セクタの長さは、セクタ長の設定(CDC_SetSctLen)で変更できます。
 備 考
関数実行後、データを転送して書き込む必要があります。
データ転送を途中で中断しても、指定したセクタ数のデータは書き込まれます。転送したデータ以外の値は不定です。

 《セクタデータの組み込み》
 セクタデータは、データ転送の終了(CDC_DataEnd)を実行後、絞りから区画に組み込まれます。全セクタが組み込み終わると、EHSTフラグが1になります。

 《空き領域の確保》
 コマンド発行時に空き領域が不足する場合、WAITを返します。(空き領域<snum)コマンド受付後に空き領域が確保できなかった場合、割り込み要因レジスタのDRDYフラグが0のまま、EHSTフラグが1になります。(他のデバイス処理で空き領域が使われた場合)




Title

関数仕様

Function

セクタデータの複写

Function Name[SR]

CDC_CopySctData

No

7.6

 書 式
Sint32 CDC_CopySctData(Sint32 srcbn, Sint32 spos, Sint32 snum, Sint32 dstfln)
 入 力
srcbn
:複写元バッファ区画番号
spos
:セクタ位置(CDC_SPOS_END:区画最後のセクタを示す)
snum
:セクタ数(CDC_SNUM_END:sposから区画最後までのセクタ数を示す)
dstfln
:複写先絞り番号
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
ECPYフラグ
 機 能
バッファ区画の指定セクタ範囲から絞りにセクタデータを複写します。(セレクタ間での複写)
1セクタの長さは、2352バイト固定です。
 備 考
コマンド発行時に空き領域が不足する場合、WAITを返します。(空き領域<snum)コマンド処理中に空き領域が無くなった場合、その時点で複写処理を中止してエラーになります。(他のデバイス処理で空き領域が使われた場合)
エラー情報を得るには、セクタデータ複写/移動エラー取得(CDC_GetCopyErr)を実行します。



Title

関数仕様

Function

セクタデータの移動

Function Name[SR]

CDC_MoveSctData

No

7.7

 書 式
Sint32 CDC_MoveSctData(Sint32 srcbn, Sint32 spos, Sint32 snum, Sint32 dstfln)
 入 力
srcbn
:移動元バッファ区画番号
spos
:セクタ位置(CDC_SPOS_END:区画最後のセクタを示す)
snum
:セクタ数(CDC_SNUM_END:sposから区画最後までのセクタ数を示す)
dstfln
:移動先絞り番号
 出 力
なし
 関数値
エラーコードを返します。
 終了フラグ
ECPYフラグ
 機 能
バッファ区画の指定セクタ範囲から絞りにセクタデータを移動します。(セレクタ間での移動)
1セクタの長さは、2352バイト固定です。
 備 考
バッファが満杯でも実行できます。
エラー情報を得るには、セクタデータ複写/移動エラー取得(CDC_GetCopyErr)を実行します。



Title

関数仕様

Function

セクタデータ複写/移動エラー取得

Function Name[S-]

CDC_GetCopyErr

No

7.8

 書 式
Sint32 CDC_GetCopyErr(Sint32 *cpyerr)
 入 力
なし
 出 力
cpyerr:複写/移動エラー情報
 関数値
エラーコードを返します。
 機 能
セクタデータの複写/移動実行時のエラー情報を取得します。
前回のエラー情報は、次に複写/移動(CDC_CopySctData, CDC_MoveSctData)を実行するまで保持されます。

 (1)複写/移動エラー情報
定数名
説 明
CDC_COPY_OK
正常終了……初期値
CDC_COPY_NG
エラー発生
・複写/移動中にセレクタが切り離された。
・バッファの空き領域が無くなった。
CDC_COPY_BUSY
複写/移動処理中


戻る進む
PROGRAMMER'S GUIDECD通信I/F(CDパート)
Copyright SEGA ENTERPRISES, LTD., 1997