From 7c24e9a9b02b04dcaf9507acb94091ea70a2c02d Mon Sep 17 00:00:00 2001 From: Xavi Del Campo Date: Fri, 31 Jan 2020 10:32:23 +0100 Subject: Imported pristine psxsdk-20190410 from official repo --- libpsx/include/memcard.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 libpsx/include/memcard.h (limited to 'libpsx/include/memcard.h') diff --git a/libpsx/include/memcard.h b/libpsx/include/memcard.h new file mode 100644 index 0000000..11b443f --- /dev/null +++ b/libpsx/include/memcard.h @@ -0,0 +1,74 @@ +#ifndef _PSXSDK_MEMCARD_H +#define _PSXSDK_MEMCARD_H + +/*Card connection related*/ +enum memcard_status +{ + /** Memory card is connected */ + MEMCARD_CONNECTED = 1, + /** Memory card is formatted */ + MEMCARD_FORMATTED = 2 +}; + +/** + * Results of memory card operations + */ + +enum memcard_operation_result +{ + /** Operation was successful - good result */ + MEMCARD_RW_GOOD = 0x47, + /** Bad checksum - bad result */ + MEMCARD_RW_BADCHECK = 0x4E, + /** Bad sector - bad result */ + MEMCARD_RW_BADSECTOR = 0xFF +}; + +/*Card block type*/ +/*#define BLOCK_FORMATTED 0x000000A0 +#define BLOCK_INITIAL 0x00000051 +#define BLOCK_MIDLINK 0x00000052 +#define BLOCK_ENDLINK 0x00000053 +#define BLOCK_DEL_INITIAL 0x000000A1 +#define BLOCK_DEL_MIDLINK 0x000000A2 +#define BLOCK_DEL_ENDLINK 0x000000A3*/ + +/*128 byte card directory*/ +/*typedef struct{ + long BlockType; + long FileSize; + short NextBlock; + char FileName[20]; + char Reserved[97]; + char XorChecksum; +}CARDDIR;*/ + +/** + * Reads a 128-byte sector from a memory card. + * @param card_slot Memory card slot (0 = first slot, 1 = second slot) + * @param sector Sector number (0-511) + * @param buffer Pointer to data buffer in which data will be stored + * @return Result of operation (possible values in memcard_operation_result enum) + */ + +unsigned char McReadSector(int card_slot, int sector, unsigned char *buffer); + +/** + * Writes a 128-byte sector to a memory card. + * @param card_slot Memory card slot (0 = first slot, 1 = second slot) + * @param sector Sector number (0-511) + * @param buffer Pointer to data buffer containing data to write + * @return Result of operation (possible values in memcard_operation_result enum) + */ + +unsigned char McWriteSector(int card_slot, int sector, unsigned char *buffer); + +/** + * Get memory card status + * @param card_slot Memory card slot (0 = first slot, 1 = second slot) + * @return Bitmask for current memory card status (flags in memcard_status enum) + */ + +unsigned int McGetStatus(int card_slot); + +#endif -- cgit v1.2.3