# Shinobi Library

English

###
Ver 1.00

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 | システムＩＤのメディア情報に含まれるディスクの何枚目かの値
  nAll | システムＩＤのメディア情報に含まれる何枚組みのディスクかの値
  szProduct | 商品番号 10文字までコピーされる。（11byte目,szProduct[10]は'\0'）

参照
  syBtGetBootSystemID()、syBtGetCurrentID()

## 2.関数仕様

### 2.1関数一覧

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

### 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を返し、内部的には正常動作いたしません。

## 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が渡される。
［機能］
  起動ディスクのシステムＩＤの情報を取得します。
［備考］

## 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が渡される。
［機能］
  現在認識中のディスクのシステムＩＤの情報を取得します。
［用例］

          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)の認識に失敗した場合などには、動作の保証はしない。

オーバービューに戻る