@@ -241,6 +241,8 @@ void VIWaitForRetrace();
241241#define CARD_MAX_FILE 127
242242#define CARD_ICON_MAX 8
243243
244+ typedef void (* CARDCallback )(s32 chan , s32 result );
245+
244246typedef struct CARDFileInfo
245247{
246248 /*0x00*/ s32 chan ;
@@ -256,6 +258,12 @@ typedef struct CARDFileInfo
256258#define CARD_ATTR_GLOBAL 0x20u
257259#define CARD_ATTR_COMPANY 0x40u
258260
261+ #define CARD_STAT_SPEED_END 0
262+ #define CARD_STAT_SPEED_FAST 1
263+ #define CARD_STAT_SPEED_MIDDLE 2
264+ #define CARD_STAT_SPEED_SLOW 3
265+ #define CARD_STAT_SPEED_MASK 3
266+
259267#define CARD_RESULT_UNLOCKED 1
260268#define CARD_RESULT_READY 0
261269#define CARD_RESULT_BUSY -1
@@ -274,13 +282,56 @@ typedef struct CARDFileInfo
274282#define CARD_RESULT_CANCELED -14
275283#define CARD_RESULT_FATAL_ERROR -128
276284
285+ #define CARD_ICON_WIDTH 32
286+ #define CARD_ICON_HEIGHT 32
287+
288+ #define CARD_BANNER_WIDTH 96
289+ #define CARD_BANNER_HEIGHT 32
290+
291+ #define CARD_STAT_ICON_NONE 0
292+ #define CARD_STAT_ICON_C8 1
293+ #define CARD_STAT_ICON_RGB5A3 2
294+ #define CARD_STAT_ICON_MASK 3
295+
296+ #define CARD_STAT_BANNER_NONE 0
297+ #define CARD_STAT_BANNER_C8 1
298+ #define CARD_STAT_BANNER_RGB5A3 2
299+ #define CARD_STAT_BANNER_MASK 3
300+
301+ #define CARD_ENCODE_ANSI 0
302+ #define CARD_ENCODE_SJIS 1
303+
304+ #define CARD_STAT_ANIM_LOOP 0x00
305+ #define CARD_STAT_ANIM_BOUNCE 0x04
306+ #define CARD_STAT_ANIM_MASK 0x04
307+
308+ #define CARDGetDirCheck (dir ) ((CARDDirCheck*)&(dir)[CARD_MAX_FILE])
309+ #define CARDGetBannerFormat (stat ) (((stat)->bannerFormat) & CARD_STAT_BANNER_MASK)
310+ #define CARDGetIconAnim (stat ) (((stat)->bannerFormat) & CARD_STAT_ANIM_MASK)
311+ #define CARDGetIconFormat (stat , n ) (((stat)->iconFormat >> (2 * (n))) & CARD_STAT_ICON_MASK)
312+ #define CARDGetIconSpeed (stat , n ) (((stat)->iconSpeed >> (2 * (n))) & CARD_STAT_SPEED_MASK)
313+ #define CARDSetBannerFormat (stat , f ) \
314+ ((stat)->bannerFormat = (u8)(((stat)->bannerFormat & ~CARD_STAT_BANNER_MASK) | (f)))
315+ #define CARDSetIconAnim (stat , f ) \
316+ ((stat)->bannerFormat = (u8)(((stat)->bannerFormat & ~CARD_STAT_ANIM_MASK) | (f)))
317+ #define CARDSetIconFormat (stat , n , f ) \
318+ ((stat)->iconFormat = \
319+ (u16)(((stat)->iconFormat & ~(CARD_STAT_ICON_MASK << (2 * (n)))) | ((f) << (2 * (n)))))
320+ #define CARDSetIconSpeed (stat , n , f ) \
321+ ((stat)->iconSpeed = \
322+ (u16)(((stat)->iconSpeed & ~(CARD_STAT_SPEED_MASK << (2 * (n)))) | ((f) << (2 * (n)))))
323+ #define CARDSetIconAddress (stat , addr ) ((stat)->iconAddr = (u32)(addr))
324+ #define CARDSetCommentAddress (stat , addr ) ((stat)->commentAddr = (u32)(addr))
325+ #define CARDGetFileNo (fileInfo ) ((fileInfo)->fileNo)
326+
277327// CARDBios.h
278328void CARDInit (void );
279329s32 CARDFreeBlocks (s32 chan , s32 * byteNotUsed , s32 * filesNotUsed );
280330s32 CARDGetEncoding (s32 chan , u16 * encode );
281331s32 CARDGetSectorSize (s32 chan , u32 * size );
282332// CARDMount.h
283333s32 CARDProbeEx (s32 chan , s32 * memSize , s32 * sectorSize );
334+ s32 CARDMount (s32 chan , void * workArea , CARDCallback detachCallback );
284335s32 CARDUnmount (s32 chan );
285336// CARDCheck.h
286337s32 CARDCheckEx (s32 chan , s32 * xferBytes );
@@ -312,6 +363,8 @@ s32 CARDOpen(s32 chan, char* fileName, CARDFileInfo* fileInfo);
312363s32 CARDClose (CARDFileInfo * fileInfo );
313364// CARDNet
314365s32 CARDSetAttributes (s32 chan , s32 fileNo , u8 attr );
366+ // CARDFormat
367+ s32 CARDFormat (s32 chan );
315368
316369#ifdef __cplusplus
317370}
0 commit comments