]> Shamusworld >> Repos - apple2/blobdiff - src/mmu.h
Docs were missing GPLv3. Thanks to schampailler for the heads up. :-)
[apple2] / src / mmu.h
index c6c8448459eb3d629ac158ec197f7ebebf299f39..39bce952172f24d76c2c4e56f0f756d12e29d84e 100644 (file)
--- a/src/mmu.h
+++ b/src/mmu.h
@@ -3,9 +3,29 @@
 
 #include <stdint.h>
 
+// Macros for function pointers
+#define READFUNC(x) uint8_t (* x)(uint16_t)
+#define WRITEFUNC(x) void (* x)(uint16_t, uint8_t)
+
+enum { SLOT0 = 0, SLOT1, SLOT2, SLOT3, SLOT4, SLOT5, SLOT6, SLOT7 };
+
+struct SlotData
+{
+       READFUNC(ioR);          // I/O read function
+       WRITEFUNC(ioW);         // I/O write function
+       READFUNC(pageR);        // Driver page read function
+       WRITEFUNC(pageW);       // Driver page write function
+       READFUNC(extraR);       // Driver 2K read function
+       WRITEFUNC(extraW);      // Driver 2K write function
+};
+
 void SetupAddressMap(void);
+void ResetMMUPointers(void);
+void InstallSlotHandler(uint8_t slot, SlotData *);
 uint8_t AppleReadMem(uint16_t);
 void AppleWriteMem(uint16_t, uint8_t);
+void SwitchLC(void);
+uint8_t ReadFloatingBus(uint16_t);
 
 #endif // __MMU_H__