aboutsummaryrefslogtreecommitdiff
path: root/shared/mmc3.s
diff options
context:
space:
mode:
Diffstat (limited to 'shared/mmc3.s')
-rw-r--r--shared/mmc3.s23
1 files changed, 23 insertions, 0 deletions
diff --git a/shared/mmc3.s b/shared/mmc3.s
new file mode 100644
index 0000000..b3f484a
--- /dev/null
+++ b/shared/mmc3.s
@@ -0,0 +1,23 @@
+;;; Useful macros and constants for development on the MMC3 chip.
+
+.scope MMC3
+ BANK_SELECT = $8000
+ BANK_DATA = $8001
+ MIRRORING = $A000
+ RAM_PROTECT = $A001
+ IRQ_LATCH = $C000
+ IRQ_RELOAD = $C001
+ IRQ_DISABLE = $E000
+ IRQ_ENABLE = $E001
+.endscope
+
+.macro BANK_REGISTER_SET REGISTER_ID, REGISTER_VALUE
+ .if REGISTER_ID < 0 || REGISTER_ID > 7
+ .error "bad value for REGISTER_ID when bank switching"
+ .endif
+
+ lda #REGISTER_ID
+ sta MMC3::BANK_SELECT
+ lda #REGISTER_VALUE
+ sta MMC3::BANK_DATA
+.endmacro