Shinobiライブラリ - メモリーカード関数

buFormatDisk

メモリーカードのフォーマット

書式

Sint32 buFormatDisk( drive, *volume, icon, *time, flag ) 
Sint32 drive 
const Uint8 *volume 
Sint32 icon 
BUS_TIME *time 
Sint32 flag 

引数

drive   拡張ソケットの番号
*volume   ボリュームデータ
icon   アイコン番号(0〜123)
*time   タイムスタンプ
flag   フォーマットフラグ

戻り値

BUD_ERR_OK   処理要求を受けつけた
BUD_ERR_BUSY   処理中のため要求を受けつけられなかった

解説

メモリーカードをフォーマットします。

拡張ソケットの番号driveには次の値が指定できます。

 BUD_DRIVE_A1   ポートAの拡張ソケット1 
 BUD_DRIVE_A2   ポートAの拡張ソケット2 
 BUD_DRIVE_B1   ポートBの拡張ソケット1 
 BUD_DRIVE_B2   ポートBの拡張ソケット2 
 BUD_DRIVE_C1   ポートCの拡張ソケット1 
 BUD_DRIVE_C2   ポートCの拡張ソケット2 
 BUD_DRIVE_D1   ポートDの拡張ソケット1 
 BUD_DRIVE_D2   ポートDの拡張ソケット2 

ボリュームデータvolumeは、ボディカラー情報を格納した領域へのポインタを指定します。 ボディカラー情報は32バイトの領域で、次のようになっています。

ボディカラー情報を持たせる場合

 +0   +1   +2   +3   +4   +5   …   +31 
 01H   BLUE   GREEN   RED   ALPHA   00H   …   00H 

volume[ 0 ]には必ず'\x01'を格納してください。それ以外の値は禁止されています。 BLUE,GREEN,REDにそれぞれ青、緑、赤の成分を0〜255の範囲で指定します。 ALPHA(透明度)の値は128〜255の間で設定してください。 127以下の値は指定禁止です(BOOT ROMでの表示が見づらくなるため)。

ボディカラーを持たせない場合全ての要素を00Hにしてください。 ボディカラー情報を持たせない場合、BOOT ROMのファイル管理画面では、 デフォルトカラー(白)が使用されます。

フォーマットフラグflagには以下の値が指定できます。

 TRUE   完全フォーマット 
 FALSE   クイックフォーマット 


用例

  Sint32 ret;
  BUS_TIME time;
  SYS_RTC_DATE rtc;
  Uint8 volume[32];
  Sint32 icon_no;
  syRtcGetDate( &rtc );
  time = ( BUS_TIME )rtc;  /* タイムスタンプの設定 */
  icon_no = 0; /* アイコン番号の設定 */
  /* ボディカラー青を設定する */
  memset(volume, 0, sizeof(volume));
  volume[0] = 0x01;  /* ボディカラー情報あり */
  volume[1] = 0xbf;  /* B */
  volume[2] = 0x00;  /* G */
  volume[3] = 0x00;  /* R */
  volume[4] = 0xff;  /* A */
  ret = buFormatDisk(BD_DRIVE_A1, volume,
		icon_no, &time, TRUE);
  while (buStat(BUD_DRIVE_A1) == BUD_STAT_BUSY) {
  }
  if (buGetLastError(BUD_DRIVE_A1) != BUD_ERR_OK)
	return NG;
  return OK;

備考

buStat関数によるこの関数の完了ステータスとしては

 BUD_ERR_OK   正常終了 
 BUD_ERR_NO_DISK   メモリーカードがない 


buFormatDisk
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999