Shinobi Library

1998/10/6

BOOT ROM関数

0. 概要

本関数は、BOOT ROMの用意しているサービス関数群です。

1.データ仕様

1.1 マクロ定義

マクロ名 機能 実際の値
SYD_BT_OK 正常終了 (1)
SYD_BT_NG 異常終了 (0)

1.2 構造体定義

SYS_BT_SYSTEMID構造体
定義
struct tag_SYS_BT_SYSTEMID{
    Sint32 nNo ;          
    Sint32 nAll ;         
    Sint8  szProduct[16]; 
} ;
typedef struct tag_SYS_BT_SYSTEMID SYS_BT_SYSTEMID ;                       

説明
商品コードを格納する構造体です。

メンバ
nNoシステムIDのメディア情報に含まれるディスクの何枚目かの値
nAllシステムIDのメディア情報に含まれる何枚組みのディスクかの値
szProduct商品番号 10文字までコピーされる。(11byte目,szProduct[10]は'\0')
参照
syBtGetBootSystemID()、syBtGetCurrentID()

2.関数仕様

2.1関数一覧

関数  機能 
syBtExit<新規> BOOT ROMのGUI画面への復帰
syBtCheckDisc<新規> ディスク交換の調査
syBtGetBootSystemID<新規> 起動ディスクのシステムIDの情報の取得
syBtGetCurrentSystemID<新規> 現在のディスクのシステムIDの情報の取得

2.1関数仕様詳細

syBtExit

[関数 ]
 Sint32 syBtExit( void )
[入力]
 なし
[出力]
 なし
[戻り値]
[機能]
BOOT ROMのGUI画面に強制的に戻ります。

この関数は、必ずsbExitSystem後に行ってください。
[備考]

syBtCheckDisc

[関数]
 Sint32 syBtCheckDisc( Void )
[入力]
 なし
[出力]
 なし
[戻り値]
 
負値
チェック中
0
Dreamcast専用ディスク
正値
Dreamcast専用ディスク以外
[機能]
交換されたディスクの種類を判別します。
[備考]
本関数はBOOT ROM Ver. 0.972以降でのみ動作します。
BOOT ROM Ver. 0.972より前のBOOT ROMのもとでは、本関数は必ず0を返し、内部的には正常動作いたしません。
また、本関数の呼び出し頻度は、1Vに一回以下としてください。

syBtGetBootSystemID

[関数]
Sint32 syBtGetBootSystemID( SYS_BT_SYSTEMID *pData )
[入力]
pData
起動ディスクのシステムID情報を格納するための構造体のアドレス(SYS_BT_SYSTEMID構造体の実体をアプリ側で確保しそのポインタを渡す。)
[出力]
pData
起動ディスクのシステムID情報
[戻り値]
エラーコード
SYD_BT_OK
正常終了
SYD_BT_NG
異常終了
1.メディア情報で'0'〜'9'であるべき個所に他の文字が記述されている。
2.アドレスにNULLが渡される。
[機能]
起動ディスクのシステムIDの情報を取得します。
[備考]

syBtGetCurrentSystemID

[関数]
Sint32 syBtGetCurrentSystemID( SYS_BT_SYSTEMID *pData )
[入力]
pData
現在認識中のディスクのシステムID情報を格納するための構造体のアドレス(SYS_BT_SYSTEMID構造体の実体をアプリ側で確保しそのポインタを渡す。)
[出力]
pData
現在のディスク(syBtCheckDisc正常終了後)のシステムID情報
[戻り値]
エラーコード
SYD_BT_OK
正常終了
SYD_BT_NG
異常終了
1.メディア情報で'0'〜'9'であるべき個所に他の文字が記述されている。
2.アドレスにNULLが渡される。
[機能]
現在認識中のディスクのシステムIDの情報を取得します。
[用例]
    SYS_BT_SYSTEMID     systemidBoot ;
    SYS_BT_SYSTEMID     systemidCurrent ;
    
    int                 nRet1,nRet2;
    int                 y ;

    nRet1 = syBtGetBootSystemID( &systemidBoot ) ;
    nRet2 = syBtGetCurrentSystemID( &systemidCurrent ) ;

    y = 2 ;
    njPrintC( NJM_LOCATION( 4,y++),"BOOT DISC INFO" ) ;
    njPrintC( NJM_LOCATION( 4,y), "SYSTEM ID ADDRESS") ;
    njPrintH( NJM_LOCATION(25,y++),(Uint32)pAddr1,8) ;
    y++ ;
    njPrintC( NJM_LOCATION( 4,y),"ID GET RETURN CODE") ;
    njPrintH( NJM_LOCATION(25,y++),(Uint32)nRet1, 8) ;
    njPrintC( NJM_LOCATION( 4,y),"NO." ) ;
    njPrintD( NJM_LOCATION(10,y++), systemidBoot.nNo ,8 ) ;
    njPrintC( NJM_LOCATION( 4,y),"All." ) ;
    njPrintD( NJM_LOCATION(10,y++), systemidBoot.nAll,8 ) ;
    njPrintC( NJM_LOCATION( 4,y),"PID." ) ;
    njPrintC( NJM_LOCATION(10,y++), systemidBoot.szProduct ) ;

    y = 10 ;
    njPrintC( NJM_LOCATION( 4,y++),"NEW DISC INFO" ) ;
    njPrintC( NJM_LOCATION( 4,y),"SYSTEM ID ADDRESS") ;
    njPrintH( NJM_LOCATION(25,y++),(Uint32)pAddr2,8) ;
    y++ ;
    njPrintC( NJM_LOCATION( 4,y),"ID GET RETURN CODE") ;
    njPrintH( NJM_LOCATION(25,y++),(Uint32)nRet2, 8) ;
    njPrintC( NJM_LOCATION( 4,y),"NO." ) ;
    njPrintD( NJM_LOCATION(10,y++), systemidCurrent.nNo ,8 ) ;
    njPrintC( NJM_LOCATION( 4,y),"All." ) ;
    njPrintD( NJM_LOCATION(10,y++), systemidCurrent.nAll,8 ) ;
    njPrintC( NJM_LOCATION( 4,y),"PID." ) ;
    njPrintC( NJM_LOCATION(10,y++), systemidCurrent.szProduct ) ;
[備考]
本関数は、BootROMサービスライブラリのディスクチェック関数(syBtCheckDisc)を実行後、かつ、ゲームディスクと判定され、かつ、その後にディスクドアがオープンされていない場合にのみ動作保証します。
ディスク交換の発生前や、最後にディスクチェック関数(syBtCheckDisc)をを実行した際にDreamcast用ディスク(GD)の認識に失敗した場合などには、動作の保証はしない。


オーバービューに戻る
TOPに戻る
Copyright 1998 SEGA Enterprises, LTD.