drive | 拡張ソケットの番号 |
*fname | ファイル名 |
*buf | 読み込みアドレス |
nblock | 読み込むブロック数 |
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 |
引数 bufは読み込まれたバッファ(但し即時復帰なので関数終了後では不定) 通常のアプリケーションであればこの関数でファイル全体をロードします。 読み込むブロック数に0を指定するとファイル全体をロードします。
Sint32 ret; Sint32 blocks; extern char SaveData[]; /* ロードバッファ */ blocks = buGetFileSize(BUD_DRIVE_A1, "SAVEDATA"); /* ファイルサイズを取得 */ if (blocks <= 0) return NG; ret = buLoadFile(BUD_DRIVE_A1, "SAVEDATA", SaveData, blocks); if (ret == BUD_ERR_OK) { /* ロードリクエストに成功した */ } else { /* ロードリクエストに失敗した(BUSY) */ }
BUD_ERR_OK | 正常終了 |
BUD_ERR_NO_DISK | メモリーカードがない |
BUD_ERR_UNFORMAT | フォーマットされていない |
BUD_ERR_FILE_NOT_FOUND | ファイルがない |
BUD_ERR_CANNOT_OPEN | ファイルが開けない |
BUD_ERR_FILE_BROKEN | ファイルが壊れている |
ロードには約(ロードブロック数×1Int)かかります。(他のドライブの状態等によっては、多少時間は変動します。) また、bufには必ず、4バイト境界でアドレスを与えるようにしてください。