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 <= 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