English
PROGRAMMER'S GUIDEファイルシステムライブラリ
戻る進む
ファイルシステムライブラリ

6.その他の機能


6.1 開発サポート機能

 ファイルシステムは、デバッグ時のサポート機能としてメモリファイルとDOSファイルをアクセスする機能を提供します。この機能により、まだCD-ROM上に作成していないファイルや、CD-ROM作成後に変更のあったファイルを、CD-ROM上のファイルと同様にアクセスできます。ただし、CDBFSとともにこの機能を利用することはできません。
 デバッグファイルをCD-ROM上のファイルと同様にアクセスできるようにする仕組みは、ディレクトリ情報読み込み処理にあります。
 CD-ROMからディレクトリ情報を読み込むときに、デバッグファイルからもディレクトリ情報を読み込みます。そのデバッグファイルの情報がCD-ROMファイルの情報に対して、置き換え、または追加という形で処理されます。
 CD-ROMの、あるディレクトリからディレクトリ情報を読み込んだ後、以下の処理が行われます。

 (1)置き換え
 CD-ROMファイルと同名のデバッグファイルは、対応するCD-ROMファイルの代わりにディレクトリ情報がディレクトリ情報格納領域に設定されます。

 (2)追加
 置き換えの行われなかったデバッグファイルはディレクトリ情報格納領域に追加されます。
 デバッグファイルの置換えではメモリファイルの方がDOSファイルより高い優先順位を持ちます。
 これらの処理の行われる例を次に示します。図6.1がそのファイル構成です。

図6.1 ファイル構成例

 そのファイル構成で、DIR1のディレクトリ情報を取得した結果が表6.1、DIR2のディレクトリ情報を取得した結果が表6.2です。

表6.1 DIR1のディレクトリ情報
取得したディレクトリ情報
CD-ROM
DOS
SIMM
.
.
  
  
..
..
  
  
FILE1
FILE1×
FILE1×
FILE1
FILE2
FILE2
  
  
FILE3
FILE3
  
  
FILE4
  
FILE4
  
DOS_FILE
  
DOS_FILE
  
SIMMFILE
  
  
SIMMFILE
×印は置換えられたことを表します。

表6.2 DIR2のディレクトリ情報
取得したディレクトリ情報
CD-ROM
DOS
SIMM
.
.
  
  
..
..
  
  
FILE4
FILE4×
FILE4
  
FILE5
FILE5
  
  
FILE6
FILE6
  
  
FILE1
  
FILE1×
FILE1
DOS_FILE
  
DOS_FILE
  
SIMMFILE
  
  
SIMMFILE
×印は置換えられたことを表します。

 上の例で示したとおり、デバッグファイルによる置き換え、追加は、CD-ROMのすべてのディレクトリを対象に行われます。

6.2 エラー処理関数

 エラー処理関数を登録することによって、ライブラリ関数実行中にエラーが発生したら、エラー処理関数を呼び出すように指定できます。初期状態ではエラー処理関数は登録されていません。
 エラーが発生すると次のような呼び出し形式でエラー処理関数が実行されます。

void *(func)(void *obj, Sint32 err);   /* エラー処理関数           */
void *obj;                             /* 登録されたオブジェクトへのポインタ */
Sint32 err_code;                       /* 発生したエラーコード        */
(*func)(obj, err_code);                /* エラー処理関数呼び出し       */

 エラー処理関数から戻ると、ライブラリ関数はエラーコードを関数値としてアプリケーション側に制御を戻す。

6.3 多重処理

 割り込み等による多重処理を禁止します。メイン処理と割り込み処理の両方で実行する場合、呼び出し側で排他処理をしてください。

 (1)メイン処理中
 呼び出した関数がGFS_ERR_BUSYを返さなくなるまで待つか、次の機会まで本ライブラリ関数の呼び出しを延期します。

 (2)割り込み処理中
 次の機会まで本ライブラリ関数の呼び出しを延期します。

6.4 CD-DAファイル処理機能

 CD-DA ファイルの読み込みは、そのファイルで指定される音楽トラックの再生となります。
ただし、音を出力させるにはアプリケーション側でSCSPを設定する必要があります。

 (1)ファイルに対する制御
 CD-DA ファイルに対してファイルシステムが行う制御は再生と再生範囲の制御だけです。再生モードは省略値(リピートなし、ピックアップを移動する)です。

 (2)再生の仕方
 CD-DAファイルを再生するには次の方法があります。

  1. GFS_Load
  2. GFS_Fread
  3. GFS_NwFread
  4. GFS_NwCdRead

(a), (b)の方法では再生が終了するまで戻ってきません。
(c), (d)の方法ではサーバ関数を呼び出す必要があります。CD-DAの再生が終了するとサーバ関数はGFS_SVR_COMPLETEDを返します。
途中から再生するにはGFS_Seekを使用します。CD-DAファイルとCD-ROMファイルを同時にアクセスすることはできません。

 (3)ファイル操作に関するパラメータ
 CD-DAファイルに対して、取り出しモード、転送モード、読み込みパラメータ、取り出しパラメータを変更することはできません。CD-DAファイルに対して次の関数を呼び出すとエラーを返します。

6.5 DDSシステム対応

 ファイルシステムはDDS(Direct Dispatch System)用の機能をサポートします。
 製品版として作成したプログラムを、そのままDDS版として実行できます。
 作成したプログラムをDDS版として実行させるには、以下の制限事項に考慮してコーディングする必要があります。

  1. CD-DAの再生は、GFS_ConvTno関数でトラック番号を変換し、CD通信インタフェースのトラック番号指定によるCDC_CdPlay関数を使用する。
    即値のトラック番号や、CD-DAファイルを使用してはならない。
  2. CDにアクセスする場合、即値のFADを使用してはならない。
  3. ディレクトリの深さの上限は、ルートディレクトリを含めて最大7までとする。

戻る進む
PROGRAMMER'S GUIDEファイルシステムライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997