funcs.jp 3.75 KB
hdd.h で使用する各コマンドの説明。
 
    s32 dd_create(void);
    
        ディスク処理スレッド生成と必要なイニシャライズを行います。
        返り値は、正常終了のときは -1 、既に呼び出されていれば何も
        行わずに 0 を返します。dd.c コンパイル時に以下のオプション
        を指定することでこの関数の動作を下記のように変更できます。

        オプション              
        START_FROM_CASSETTE      
                                
        効果 
            LeoCreateLeoManager ではなく LeoCJCreateLeoManagerを呼びます。 
            DDの接続をチェックします。 リセット状態を解除します。リセッ
            トについては 64DDプログラミングマニュアル7章の 
            LeoResetClear() の説明を参照してください。
        
        START_FROM_CASSETTEのサブオプション
            NO_USE_RTC  RTCのチェックを行いません
            NEED_DISK   イニシャライズ時にディスクがささっていなければ挿入させます。


    s32 dd_exec( TMessage4dd * msg );
       
        ディスクスレッドにコマンドをポストします。 msg->retQ をセットして
        おくと非同期関数となります。この場合は msgを dd_checkGate() で受
        ける必要があります。retQ は ローカルの一時変数であってはいけませ
        ん、注意して下さい。

        ポスト出来る命令については command.txt を参照して下さい。


    s32 dd_checkGate( TMessage4dd * msg );  

         dd_exec( ) によって開始されたディスクスレッドの処理が完了してい
        れば -1 を返し、処理中であれば 0 を返します。この関数はスレッドをブロッ
        クしません。単に現在次の dd_exec() を発行可能かどうかを知らせるだ
        けです。この関数の返り値が真の時に限りディスクスレッドによって msg 
        に意味のある値が格納されます。


    s32 dd_thaw(s32 target_err);

        中断したディスクスレッド中のエラー処理を再開させます。target_err 
        は 整合性チェック用です。dd_getStatus( )->errno と一致している必
        要があります。このモジュールの static 関数である dd_freeze() と一
        対一対応している必要があります。


    void dd_flush(void);

        ディスクスレッドにおいてウェイト用関数 dd_wait( ) 
        を機能させるために必要な補助関数です。hdd.h モジュールを使用する
        ときは、この関数をメインスケジューラから毎フレーム呼び出して下さ
        い。


    TDDStatus  *dd_getStatus(void);

        ディスクスレッドの情報を返します。


    s32 dd_saveID(LEODiskID * det);

        det をカレントのディスクIDとしてセットします。
        主にディスクを交換したい時に使います。


    s32 dd_driveExist(void);

        ドライブが接続されていれば 1 を返します。 
 

    u32 dd_getVersion(void);

        LeoInquiry で得られるバージョン情報を 32byte データとして返します。
        

    s32 dd_getBlockSize(s32 lba,s32 size);

        LeoLBAToByte()のラッパーです。lba から size ブロックが何バイトに
        なるかを返します。


    void dd_change_mode_USA(void);
    
        北米向けカセット起動のディスクゲームを作成するときは、dd_create() 
        を実行する前にこの関数を呼びます。


    void dd_errHook(s32 func_no , s32 err_no , s32 count );

        このモジュール自身をデバッグするための関数です。func_no は 
        hdd_internal.h の leofunc_t を参照してください。以降 count で指定
        した回数 ,func_no で指定した Leo関数が実行されたとき強制的に 
        err_no エラーを返させます。強制エラー発生毎に count は 1 減ります。 
        一度にフック出来る Leo関数は一つのみです。
    
    

以下は static 関数ですが
必ずアプリケーションで修正してから使用するようにしてください。


    s32 dd_checkSum(void);
    
        RAM 領域リード時のデータチェック方法を記述します。
        dd_makeSum() でのライト方法と対応がとれている必要があります。


    s32 dd_makeSum(void);
        
        RAM 領域のデータフォーマットを規定します。
        dd_checkSum() でのデータチェックに対応したフォーマットです。


    s32 dd_restoreData(void);

        RAM領域のデータ破損時の復旧方法を規定します。