CPMx xRRR Bank select ($8000-$9FFE, even)
||| |||
||| +++- Specify which bank register to update on next write to Bank Data register
||| 0: Select 2 KB CHR bank at PPU $0000-$07FF (or $1000-$17FF); 000
||| 1: Select 2 KB CHR bank at PPU $0800-$0FFF (or $1800-$1FFF); 001
||| 2: Select 1 KB CHR bank at PPU $1000-$13FF (or $0000-$03FF); 010
||| 3: Select 1 KB CHR bank at PPU $1400-$17FF (or $0400-$07FF); 011
||| 4: Select 1 KB CHR bank at PPU $1800-$1BFF (or $0800-$0BFF); 100
||| 5: Select 1 KB CHR bank at PPU $1C00-$1FFF (or $0C00-$0FFF); 101
||| 6: Select 8 KB PRG ROM bank at $8000-$9FFF (or $C000-$DFFF); 110 00
||| 7: Select 8 KB PRG ROM bank at $A000-$BFFF 111 01
||+------- Nothing on the MMC3, see MMC6
|+-------- PRG ROM bank mode (0: $8000-$9FFF swappable,
| $C000-$DFFF fixed to second-last bank;
| 1: $C000-$DFFF swappable,
| $8000-$9FFF fixed to second-last bank)
+--------- CHR A12 inversion (0: two 2 KB banks at $0000-$0FFF,
four 1 KB banks at $1000-$1FFF;
1: two 2 KB banks at $1000-$1FFF,
four 1 KB banks at $0000-$0FFF)
ic18.5 should be ppu-a10
8000-9fff -2
a000-bfff swap (ra=0)
c000-dfff swap (ra=1)
e000-ffff -1
http://forums.nesdev.com/viewtopic.php?f=9&t=16123