drive | Extension socket number |
*fname | File name |
*buf | Load address |
nblock | Number of blocks to be loaded |
BUD_ERR_OK | Processing request was accepted | |
BUD_ERR_BUSY | Request could not be accepted because processing was in progress |
The following values can be designated for the argument drive that specifies extension sockets.
BUD_DRIVE_A1 | Extension socket 1 on board A |
BUD_DRIVE_A2 | Extension socket 2 on board A |
BUD_DRIVE_B1 | Extension socket 1 on board B |
BUD_DRIVE_B2 | Extension socket 2 on board B |
BUD_DRIVE_C1 | Extension socket 1 on board C |
BUD_DRIVE_C2 | Extension socket 2 on board C |
BUD_DRIVE_D1 | Extension socket 1 on board D |
BUD_DRIVE_D2 | Extension socket 2 on board D |
Parameter buf is the buffer that is read (however, because of immediate return, it is undefined after the function finishes). In the case of a normal application, this function loads an entire file. If "0" is specified for the number of blocks to be loaded, the entire file is loaded.
Sint32 ret; Sint32 blocks; extern char SaveData[]; /* Load buffer */ blocks = buGetFileSize(BUD_DRIVE_A1, "SAVEDATA"); /* Get file size */ if (blocks <= 0) return NG; ret = buLoadFile(BUD_DRIVE_A1, "SAVEDATA", SaveData, blocks); if (ret == BUD_ERR_OK) { /* Load request was successful */ } else { /* Load request failed (busy) */ }
BUD_ERR_OK | Normal end |
BUD_ERR_NO_DISK | Memory card not found |
BUD_ERR_UNFORMAT | Disk is not formatted |
BUD_ERR_FILE_NOT_FOUND | File not found |
BUD_ERR_CANNOT_OPEN | Cannot open file |
BUD_ERR_FILE_BROKEN | File is damaged |
A load generally requires (number of blocks being loaded x 1 Int). (This time requirement may vary, depending on the status of other drives, etc.) In addition, the address that is specified for "buf" must be on a four-byte boundary.