ROMBUSDriver/rombus.h

37 lines
1.1 KiB
C
Raw Normal View History

2021-08-07 17:20:49 +00:00
#ifndef ROMBUS_H
#define ROMBUS_H
2021-08-07 05:01:54 +00:00
#define BufPtr ((Ptr*)0x10C)
#define MemTop ((Ptr*)0x108)
#define MMU32bit ((char*)0xCB2)
2021-08-07 17:20:49 +00:00
#pragma parameter __D0 RBReadXPRAM(__D0, __D1, __A0)
OSErr RBReadXPRAM(short numBytes, short whichByte, Ptr dest) = {0x4840, 0x3001, 0xA051};
2021-08-07 05:01:54 +00:00
2021-08-07 17:20:49 +00:00
#pragma parameter __D0 RBAddDrive(__D1, __D0, __A0)
OSErr RBAddDrive(short drvrRefNum, short drvNum, DrvQElPtr dq) = {0x4840, 0x3001, 0xA04E};
2021-08-07 05:01:54 +00:00
2021-08-07 17:20:49 +00:00
static inline char RBIsSPressed() { return *((volatile char*)0x174) & 0x02; }
static inline char RBIsXPressed() { return *((volatile char*)0x174) & 0x80; }
static inline char RBIsRPressed() { return *((volatile char*)0x175) & 0x80; }
2021-08-07 05:01:54 +00:00
#define RDISK_ICON_SIZE (285)
2021-08-07 17:20:49 +00:00
#define SDISK_ICON_SIZE (285)
typedef struct RBStorage_s {
DrvSts2 rdStatus;
DrvSts2 sdStatus;
2021-08-07 05:01:54 +00:00
char initialized;
2022-04-19 10:11:35 +00:00
char mountROM;
char mountSD;
2021-08-07 17:20:49 +00:00
char rdIcon[RDISK_ICON_SIZE+8];
char sdIcon[SDISK_ICON_SIZE+8];
} RBStorage_t;
2021-08-07 05:01:54 +00:00
2021-08-07 17:20:49 +00:00
typedef void (*RBCopy_t)(Ptr, Ptr, unsigned long);
#define copy24(s, d, b) { RBCopy_t f = C24; f(s, d, b); }
2021-08-07 05:01:54 +00:00
#define PackBits_Repeat(count) (-1 * (count - 1))
#define PackBits_Literal(count) (count - 1)
#endif