##### Shinobi Library - Memory Card Function

# buLoadFile

Loads a file

### FORMAT

`

  Sint32 buLoadFile( drive, *fname, *buf, nblock )
  Sint32 drive
  const char *fname
  void *buf
  Uint32 nblock

`

### PARAMETER

  `drive` | Extension socket number
  `*fname` | File name
  `*buf` | Load address
  `nblock` | Number of blocks to be loaded

### RETURN

  BUD_ERR_OK | Processing request was accepted |
  BUD_ERR_BUSY | Request could not be accepted because processing was in progress |

### DESCRIPTION

  Loads a file from a memory card inserted in a specified extension socket.

  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.

### EXAMPLE

      Sint32 ret;
      Sint32 blocks;
      extern char SaveData[];	/* Load buffer */
      blocks = buGetFileSize(BUD_DRIVE_A1, "SAVEDATA");  /* Get file size */
      if (blocks &lt;= 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) */
      }

### NOTE

  The following are the completion statuses for this function that are obtained by `buStat():`

  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.

buLoadFile

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999