Sint32 buFormatDisk( drive, volume, icon, time, flag )
Sint32 drive
const Uint8 *volume
Sint32 icon
const BUS_TIME *time
Uint32 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; /* Set time stamp */ icon_no = 0; /* Set icon number */ /* Set body color to blue */ memset(volume, 0, sizeof(volume)); volume[0] = 0x01; /* Body color information found */ 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 メモリーカードがない