What is the format for kCISMagicTuple (0xA0)? Is kCISTupleVersion2 (0x40) used for anything beyond information or is it required as well? Here's the definition of the Magic specific tuple. The Magic number and version should be set from the constants found below. For a pager card the card type should be kTypeIOCard. The clusterOffset should be the offset from the start of common memory space of the start of the metacluster. That should be the start of the RAM card image plus the offset found within the RAM card image's Magic Cap tuple. The unique ID needs to be just that. Currently, there's no way to ensure uniqueness, but for now just use the unique ID found in the RAM card file's Magic Cap tuple. The modification date and time and the crc should be set to zero. kCISTupleVersion2 is present only for the edification of other systems. Too bad no other system pays any attention to it. The QuadChar('w','x','y','z') macro is equivelent to 'wxyz'.
typedef struct MagicCapTuple {
ulong magicNumber;
ulong version;
ulong cardType;
ulong clusterOffset;
ulong uniqueID;
ulong modificationDate;
ulong modificationTime;
ulong crc;
} MagicCapTuple;
#define kMagicCapTupleVersion 0x00010001
#define kMagicCapTupleMagicNumber QuadChar('G','M','M','C')
#define kTypeNoCardInSlot QuadChar('N','U','L','L')
#define kTypeForeignRAMCard QuadChar('F','O','R','N')
#define kTypeDamagedRAMCard QuadChar('D','A','M','G')
#define kTypeUnformattedRAMCard QuadChar('B','L','N','K')
#define kTypeExtendedRAMCard QuadChar('X','R','A','M')
#define kTypeFormattedRAMCard QuadChar('R','A','M','C')
#define kTypeROMCard QuadChar('J','R','O','M')
#define kTypeROMWithStorage QuadChar('R','O','M','+')
#define kTypeSelfHostedFlashCard QuadChar('F','S','R','V')
#define kTypeFlashCard QuadChar('F','L','S','H')
#define kTypeIOCard QuadChar('I','O','C','D')