summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK/include/MI_exMemory.h
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2021-07-23 01:11:15 +0100
committerred031000 <rubenru09@aol.com>2021-07-23 01:12:27 +0100
commit5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae (patch)
tree2e91e60bdb7a9174b16d8ca1b532809d4ae2e5b6 /arm9/lib/NitroSDK/include/MI_exMemory.h
parentc2d91a2d997afd01fa4f40e1e16d5ee85557c9a8 (diff)
separate out libs to libc, libnns and NitroSDK
Diffstat (limited to 'arm9/lib/NitroSDK/include/MI_exMemory.h')
-rw-r--r--arm9/lib/NitroSDK/include/MI_exMemory.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/MI_exMemory.h b/arm9/lib/NitroSDK/include/MI_exMemory.h
new file mode 100644
index 00000000..5e21d7e6
--- /dev/null
+++ b/arm9/lib/NitroSDK/include/MI_exMemory.h
@@ -0,0 +1,75 @@
+#ifndef POKEDIAMOND_MI_EXMEMORY_H
+#define POKEDIAMOND_MI_EXMEMORY_H
+
+#include "registers.h"
+
+typedef enum {
+ MI_PROCESSOR_ARM9 = 0,
+ MI_PROCESSOR_ARM7 = 1
+} MIProcessor;
+
+typedef enum
+{
+ MI_CTRDG_ROMCYCLE1_10 = 0,
+ MI_CTRDG_ROMCYCLE1_8 = 1,
+ MI_CTRDG_ROMCYCLE1_6 = 2,
+ MI_CTRDG_ROMCYCLE1_18 = 3
+} MICartridgeRomCycle1st;
+
+typedef enum
+{
+ MI_CTRDG_ROMCYCLE2_6 = 0,
+ MI_CTRDG_ROMCYCLE2_4 = 1
+} MICartridgeRomCycle2nd;
+
+typedef enum
+{
+ MI_CTRDG_RAMCYCLE_10 = 0,
+ MI_CTRDG_RAMCYCLE_8 = 1,
+ MI_CTRDG_RAMCYCLE_6 = 2,
+ MI_CTRDG_RAMCYCLE_18 = 3
+} MICartridgeRamCycle;
+
+static inline void MIi_SetCardProcessor(MIProcessor proc)
+{
+ reg_MI_EXMEMCNT =
+ (u16)((reg_MI_EXMEMCNT & ~0x0800) | (proc << 11));
+}
+
+static inline void MIi_SetCartridgeProcessor(MIProcessor proc)
+{
+ reg_MI_EXMEMCNT =
+ (u16)((reg_MI_EXMEMCNT & ~0x0080) | (proc << 7));
+}
+
+static inline MICartridgeRomCycle1st MI_GetCartridgeRomCycle1st(void)
+{
+ return (MICartridgeRomCycle1st)((reg_MI_EXMEMCNT & 0xc) >> 2);
+}
+
+static inline MICartridgeRomCycle2nd MI_GetCartridgeRomCycle2nd(void)
+{
+ return (MICartridgeRomCycle2nd)((reg_MI_EXMEMCNT & 0x10) >> 4);
+}
+
+static inline void MI_SetCartridgeRomCycle1st(MICartridgeRomCycle1st c1)
+{
+ reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~0xc) | (c1 << 2));
+}
+
+static inline void MI_SetCartridgeRomCycle2nd(MICartridgeRomCycle2nd c2)
+{
+ reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~0x10) | (c2 << 4));
+}
+
+static inline void MI_SetCartridgeRamCycle(MICartridgeRamCycle c)
+{
+ reg_MI_EXMEMCNT = (u16)((reg_MI_EXMEMCNT & ~3) | (c << 0));
+}
+
+static inline MICartridgeRamCycle MI_GetCartridgeRamCycle(void)
+{
+ return (MICartridgeRamCycle)((reg_MI_EXMEMCNT & 3) >> 0);
+}
+
+#endif //POKEDIAMOND_MI_EXMEMORY_H