37 lines
602 B
C
37 lines
602 B
C
#include "mmc3.h"
|
|
|
|
char mmc3_shadow;
|
|
|
|
void mmc3_reset(void)
|
|
{
|
|
mmc3_shadow = 0;
|
|
}
|
|
|
|
void mmc3_config(MMC3MPrgMode pmode, MMC3MChrMode cmode)
|
|
{
|
|
mmc3_shadow = (pmode << 6) | (cmode << 7);
|
|
*(volatile char *)0x8000 = mmc3_shadow;
|
|
}
|
|
|
|
void mmc3_bank(MMC3BankReg reg, char bank)
|
|
{
|
|
*(volatile char *)0x8000 = reg | mmc3_shadow;
|
|
*(volatile char *)0x8001 = bank;
|
|
}
|
|
|
|
void mmc3_bank_prg(char bank)
|
|
{
|
|
mmc3_bank(MMC3B_PRG0, bank * 2 + 0);
|
|
mmc3_bank(MMC3B_PRG1, bank * 2 + 1);
|
|
}
|
|
|
|
void mmc3_bank_chr0(char bank)
|
|
{
|
|
mmc3_bank(MMC3B_CHR0, bank);
|
|
}
|
|
|
|
void mmc3_bank_chr1(char bank)
|
|
{
|
|
mmc3_bank(MMC3B_CHR1, bank);
|
|
}
|