aboutsummaryrefslogtreecommitdiff
path: root/shared/mmc3.s
blob: b3f484ae17374f804d41bceedfc5cb818f736d17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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