; Zelda uses the MMC very simply. Zelda has no VROM ... everything is in RAM.
;
; 011x : Two-screen (10=vertical mirroring, 11=horizontal) 16K fixed C000 and 16K swappable 8000, 8K VROM at PPU 0000
;# DPCM 1
C000: F0 F0 B0 F0 3C 3C 3C 3C 3C 3C F0 F0 FC C0 33 0F 3C F0 C0 0F FC C0 0F F3 0F FC 30 3F C3 2F CC CF
C020: 83 3F 0C FF 0F FC 03 CF EF 0F FC 00 CF FF 0F F0 00 83 3F 0F F0 C0 E3 F3 00 0F 3C 3F 03 0F CC CF
C040: C0 C3 FB 00 0F CC 03 0F F3 C0 03 0F 3C F0 F0 C0 C0 C3 C3 C3 C3 C3 C3 C3 F0 F0 B0 3C 3C 0F 0F C3
C060: C3 F0 3C 0C CF C3 F0 3C 0C CB C3 F0 3C 3C 0F CB C3 C3 F0 30 3C 3C 3C 0C 0F 0F 0F 0F 0F 0F 3C 3C
C080: FC F0 C0 0B 0F FC CC 03 3F FC 03 FC 30 3F C0 0F CF 0F F0 0F CF CF C0 3F F0 FC 3C F0 0F 3C FF 3C
C0A0: E0 0F 3C FC 3C C0 0F 3C FF 3C F0 00 C3 CF C0 0F CC CF C0 03 F3 00 3C CC 0F F8 C0 0F 3C F0 03 0F
C0C0: 2F 3C F0 F0 C0 C0 C3 C3 C3 C3 C3 C3 C3 F0 F0 F0 3C 3C 0C 0F CF C3 F3 30 3C CF C3 B0 3C 0F C3 F2
C0E0: B0 3C 3C 0F 0F C3 C3 C3 C3 F0 F0 F0 F0 F0 F0 F0 F0 C0 C3 03 0F 3F FC F0 03 0F FC C0 0F FC 00 3F
C100: CC 0F F0 0F F3 33 FC 03 F3 F3 C0 2F 3C FF 0C F0 03 3C FF 3F F0 03 3C FF 3C F0 0B 3C 3F 0F FC C0
C120: F3 33 C0 03 C3 03 F0 C3 FC 00 3F CC 0F 3C C0 03 3C F0 C0 03 0F 3C 3C F0 F0 F0 F2 F0 F0 F0 F0 F0
C140: F0 F0 3C 3C 0C 0F 0F CB C3 F2 30 0C CF C3 70 3C 0F C3 F3 30 3C 0C 0F CF C3 C3 F3 F0 F0 F0 30 FC
C160: 3C 3C F0 F0 F0 F0 C2 C3 0B 0F 3C F0 C0 0F FC E0 CF FC 80 3F CC 0F F0 03 F3 33 F0 03 F3 CF C0 3F
C180: 30 FF 3C F0 0F 3C FF 3C F0 0F 30 FC 3C C0 0F 3C FF 0C FC 00 F3 03 E0 0B E3 03 F0 03 FC 00 3F CC
C1A0: 0F FC C0 0F 3C F0 C0 0F 0F BC 3C F0 F0 F0 C2 C3 C3 C3 C3 C3 C3 F3 F0 F0 30 3C 3C 3C 0F CF C3 30
C1C0: 3C CF C3 B0 0C CF F3 F0 30 3C 3C 2C 0F 0F 0F C3 CB C3 C3 C3 C3 C3 0B 0F 0F 0F 3C FC F0 C2 03 3F
C1E0: F0 C0 2F FC 00 3F F0 03 FC C3 FC 00 FF 00 FC 00 FF 03 F3 CF C0 3F F0 FC 33 C0 3F C0 FC F3 C0 3F
C200: C0 FC 33 C0 0F 30 FF 00 FC C0 FC 03 FC 00 FC 00 BF C0 0F F0 03 3F F0 03 0F FE F0 C0 0F 0F 3F 3C
C220: 3C 3C BC F0 F0 F0 F0 30 3C 3C 3C 3C 2F 0F 0F C3 C3 F3 3C 0C C3 F3 3C 0C CB F2 3C 3C 0C 0F CB C3
C240: C3 C3 F0 F2 F0 F0 F0 F0 F0 F0 F0 C3 C3 03 0F 3F 3C F0 C3 0B 3C F0 03 3F C0 03 FC 03 3F C0 3F C0
C260: 3F C0 FF 00 FF 00 FC 03 F0 3F C0 FF 02 F3 0F 03 FF 03 C3 3F 03 FF 03 F3 0F C0 3F 00 FF 00 FC 00
C280: FC 00 FF 00 3F F0 3F F0 03 3F F0 03 3F BC F0 C3 03 2F 3C 7C F0 F0 F0 F0 C3 E2 C3 C3 C3 C2 F3 F0
C2A0: F0 F0 30 3C 3C 0F C3 B3 3C CF F3 30 0C C3 F0 F2 F0 30 BC 3C 3C 3C 3C 2C 3C 3C 3E 3C 3C 3C FC F0
C2C0: F0 C3 03 0F 3C F0 C2 0F 7C C0 03 FE 80 3F F0 0F F0 03 FC 03 FC 03 FC 0F E0 0F C0 FF 00 FC 03 F0
C2E0: 7F 00 FC 03 F0 FF 00 FC 0F F0 3F 00 FF 02 FC 0F F0 0F F0 3F C0 0F F0 0F F8 03 FF C0 0F FC C0 0F
C300: BC F0 C0 0F 0F BC FC F0 F0 F0 C3 C3 C3 C3 C3 C3 C3 C3 C3 F2 F0 F0 B0 3C 3C 0F C3 B2 3C CF F3 30
C320: 0C C3 E3 F0 F0 F0 38 3C 3C 3C 3C 3C 3C 3C 3C 3C FC F0 F0 C0 C3 03 0F 3C F0 C0 0F 3E F0 07 3F E0
C340: 0F F8 03 FE 03 BF 00 FF 00 FF 00 FF 03 F0 0F F0 3F 00 FE 03 F8 3F 00 FE 03 F0 3F 00 FC 03 FC 3F
C360: 80 FF 00 FF 03 FC 03 FC 03 FC 00 FF 00 3F F0 0F FC C0 0F 3C F0 C3 0F 3F 3C F0 C2 C3 CB 03 0F 0F
C380: 2F 0F 3F 0C 2F 2C 0F 0F 0F 0F 0F CB CB F0 3C CB F3 2C CE C3 30 0C 0F 0F 0F 0F C3 C3 C3 C3 C3 C3
C3A0: C3 CF 03 0F 0F 0F 3C 3C F0 F0 C3 0B 3F F0 C0 0F FC C0 0F FC 00 FF C0 3F C0 0F C0 0F F0 3F C0 3F
C3C0: 80 FF 00 FC 03 F0 BF 00 FC 03 F8 FF 00 FC 0F E0 FF 00 FC 03 F8 0F C0 3F E0 FF 00 3F C0 3F C0 0F
C3E0: F8 0F FC C0 2F F8 C0 0F 3C F0 C3 03 3F 3C FC F0 F0 F2 E0 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 F2 F0
C400: 38 CC C3 B2 2C 0F F3 0C CF F2 F2 F0 F0 F0 F0 F0 F0 C0 83 0F FC 00 FF 00 FE 03 C0 3F 80 FF 00 FF
C420: C0 0F 3C FC F0 F0 F2 B0 CC C3 C3 C3 0F 0F 3C F0 0B FC 03 FC 0B C0 3F 00 FF 03 F0 03 FE C3 0B 3F
C440: 3C BC 38 3C E3 F0 F0 C2 C3 0F 3E F0 03 F8 03 FC 0F 00 FF 00 FE 0F F0 0B FC C2 0F 3E FC F0 C0 3F
C460: C3 C0 C3 0F 3F FC C0 0F F0 03 F0 0F C0 FF 00 FC 0F F0 0F C0 0F FC C0 C3 3F 3C F0 CC 33 FC C0 C3
C480: 2F FC C0 0F F0 0F F0 0F 00 FF 00 FC 0F C0 3F C0 3F F0 C3 0F FC F0 03 00 DE FF FF C0 03 3F C0 0F
C4A0: F0 0F C0 3F 00 FF 03 C0 3F C0 FF 00 3F F0 0F 3C F0 03 FF 00 C0 FF C3 CF BF C0 0F F0 03 E0 0F C0
C4C0: FF 00 F0 0F F0 7F 00 FF C0 3F F0 03 BF F0 03 00 FF FF FC 00 3F C0 0F F0 0F C0 3F 00 FF 03 F0 3F
C4E0: 80 FF 00 FC 00 FF C0 0F FC 03 FF FF 00 20 80 3F F4 0F F0 0B FC 0F 00 FF 00 FF 0F C0 FF 00 FE 03
C500: FC 03 FC 02 3F E0 FF 03 00 3F F0 0F F0 0F F8 0F C0 3F 80 FF 03 C0 3F C0 FF 03 F0 0F F0 0F F0 0F
C520: F4 0B C0 FF 03 FC 03 FC 03 FE 03 F0 0F C0 FF 00 F0 0F F0 FF 00 FC 0F F0 2F 80 3F C0 BF 00 FC 0F
C540: D0 3F 00 FF 80 FF 03 F0 0F F0 FF 00 F8 0F E0 FF 00 FC 0F E0 3F 00 FF 00 FE 0B 00 FF 00 FF 0F C0
C560: 3F F0 FF 00 F0 3F 00 FF 02 F0 3F 00 FF 03 C0 BF 40 FF 03 C0 FF 00 FF 07 C0 FF 00 FE 0F 00 FF 00
C580: FF 0F 00 FF 03 FC 0F 00 FF 03 F8 3F 00 FC 03 FC 3F 00 FC 0F F0 3F 00 FC 0F F4 BF 00 F0 0F E0 FF
C5A0: 00 F0 0F D0 FF 02 F0 3F 40 FF 03 E0 3F 40 FF 03 C0 3F C0 FF 03 C0 FF 00 FF 0B 40 FF 00 FF 0F 00
C5C0: FF 00 FE 0F 00 FF 03 FC 0F 00 FF 03 FC 3F 00 FC 0F F4 2F 00 FC 0B F0 3F 00 FC 0F F0 3F 00 FC 0F
C5E0: F0 FF 00 F0 2F 60 FF 00 F0 3F C0 FF 02 E0 3F C0 FF 03 C0 3F C0 FF 03 C0 FF 00 FD 03 C0 FF 00 FF
C600: 0F 00 FF 00 FF 0F 00 FF 03 F7 07 00 FF 03 F8 0F 00 FF 03 FC 2F 00 FC 0F D8 3F 00 FC 0F D8 BF 00
C620: FC 0F D0 7F 00 F8 2F D0 FF 00 F0 3F 40 FF 02 F0 3F 40 FF 02 E0 BF 40 FF 03 C0 FF 00 FF 03 C0 FF
C640: C0 FD 01 C0 FF 00 FD 03 82 FF 02 DD 0F 20 FF 03 DC 0F 08 FF 03 DC 2F 00 FD 0B EC 1F 20 FC 0F F0
C660: 3F 00 FC 0F 70 BF 00 FA 0F 70 7F 80 F0 3F C0 7F 80 F0 3F C0 FD 02 F0 3F C0 FD 02 C2 FF 80 FE 01
C680: C2 FF 00 FF 03 C0 FF 00 F7 07 88 FF 02 FC 07 08 FF 03 DC 2F 00 FF 03 DC 2F 80 FE 03 DC 1F 20 FC
C6A0: 0F 70 3F 10 FC 0F 70 BF 00 FA 3F B0 3D 20 F2 0F B0 7D 90 D8 3F C0 7E 42 D2 3F C0 FD 20 D1 3F 60
C6C0: FD 02 C9 BF 80 DD 83 C4 FF 00 F5 23 22 FF 80 F5 0B 22 FF 02 76 0F 22 FF 03 74 0F 8A FC 03 D6 2F
C6E0: 88 FC 0B D8 2F 88 FC 0F 50 3F 28 F2 0F 68 BF 20 F2 2F 60 BF 20 E9 3F 40 FD 20 F2 BF 50 D5 48 D2
C700: 0F 68 75 25 69 9F A0 75 A3 A4 3F 50 6D 8B 4A BF 40 6B 8B 4A BF 40 6B 2B 2A FD 20 6B 27 29 FD 02
C720: 6D 97 A4 FC 02 AD AD A4 F4 83 6A 9D A8 F4 0B B4 AD A2 F2 0B B4 76 A2 D2 0F B4 76 92 D2 2F D0 76
;# DPCM 2
C740: A2 CA 2F D0 DA 8A 4A 3F D0 DA 49 4A FF 92 4A 2A FF 00 00 00 3C F3 0F E0 FF FF 3F 00 00 00 FC FF
C760: FF 3C 3F 80 F0 FF FF 00 00 00 00 FF FF CF FF 0F 00 F0 FF 03 00 00 C0 C0 FF FF F0 FF 03 00 FE FF
C780: 00 00 00 FC C0 FF FF C3 CF 0C 00 F0 FF 3F 00 00 00 0C FF FF 3F FC FF 00 00 FF FF 03 00 00 C0 C3
C7A0: FF FF F3 FF 03 00 F0 FF 0F 00 00 00 0C F0 FF FF CC FF 0F 00 F0 FF 3F 00 00 00 F0 03 FF FF 0F FF
C7C0: 3F 00 00 FF FF 03 00 00 00 F0 F0 FF FF C3 FF FF 00 00 FC FF 3F 00 00 00 00 80 FF FF FF F0 33 03
C7E0: 20 FC FF FF 0F 00 03 00 00 00 FF FF FF FF 3F 00 00 00 00 00 00 00 6B 6D 5D D7 B6 6D 5D DB D6 D6
;# DPCM 3
C800: 2B F0 FF BF 00 FC F8 01 1C C2 FF 03 C0 F5 FF 20 00 FC C7 81 E3 FF 7F 00 C2 7F 1D 00 70 FC 38 70
C820: E8 3F 0E 00 C7 7F E1 38 FE 1F 38 C0 1F 07 80 BF C7 0F 00 FF F1 E3 F8 79 1E C0 81 FF C0 21 E8 3F
C840: 70 FC F8 31 00 78 8F 1F C7 A1 97 00 80 FF C7 7B E8 F8 01 E0 07 8E 03 C0 F1 FF 00 7E FC 07 F0 1F
C860: 3F 80 E3 E0 8F 03 FF 7F 08 00 8E E3 07 F0 E3 3F 0E E0 C7 F1 03 FF B1 02 C0 FF A3 00 7E FC 3F 80
C880: 03 BF 20 02 FF 8F 03 F8 7F 00 38 8E 1F 38 80 E3 07 FE 43 FF 8F 1F C0 8F FF 38 7E 00 3F 80 9E BF
C8A0: 0E E0 07 F0 03 FB 71 1C 80 7E E0 07 FE 0B F8 01 E0 00 FE 1E 3F F0 1F F8 0F EC 07 7A 00 3F 80 1F
C8C0: F8 0F FC 38 7E E0 00 7E FC C0 0F E0 07 F0 03 FF F1 1F C0 0F FC 07 7E 00 07 70 FC 38 0F E0 3F 7E
C8E0: 00 3F F0 0B F8 7F FC 00 FE 1F 07 0E 1C F8 2F E0 C7 71 1C FA 81 1F C0 FF E3 00 80 03 38 0F FC C7
C900: 0F E0 FF 71 00 F8 0F 1C 00 FE 03 C7 81 FF F8 01 FC 07 0E FC F8 5F FC 00 7E E0 38 8E 9F 00 F0 FF
C920: C7 F1 03 FB 01 00 F8 7F 1C C7 FF 03 04 80 FF 38 80 FF 3F 00 00 F8 8F 1F C0 FF 1F 00 80 FF 07 80
C940: FF FF 00 00 F8 BF 1F C7 F7 83 07 80 1F FF 01 E1 3F 00 00 FF 8F 03 F8 F1 1F 07 0E FC 38 80 1F FF
C960: 0F E0 F8 7F 00 3F F0 1F 28 0E 9C 07 F0 0B FF 81 FF C0 0E 00 3F F0 1F F8 7B 1C C7 F0 03 07 80 1F
C980: F8 71 FC 07 7E 00 EF 81 17 F8 F1 03 F8 B1 1F C0 77 1C C7 8B 03 BF 00 1C C7 0F FC 00 FE FF C0 F1
C9A0: FE C0 8F A3 3F 0E 10 F8 0F 00 38 FA 03 3F 8E FF 38 80 E3 3F 78 00 E7 8B 1F 38 FE 02 3F 80 1F FA
C9C0: 01 E0 FC 7F 00 F8 8F 1F 00 80 FF 2F 00 E0 FF 01 80 FF 7F 00 38 FE FF 00 FE FF 00 00 FC FF 81 1F
C9E0: E0 0F 00 C0 FF BF C7 01 FC 00 0E E8 3F 70 00 FF 7F 00 C0 FE 03 07 FE FF 40 71 FC 02 40 FC FF 7B
;# DPCM 4
CA00: 1C C0 0F 1C 00 FE 1F FF 81 FF 00 0E E0 07 FE 02 FF 0F 1C 00 7E FC 07 F0 0B F8 71 FC C0 0F 1C F8
CA20: 81 1F F8 0F 1C EF 3F 00 58 8F 1F 00 80 FF 3F FE 03 3F 00 00 FF 0F 1C C0 7F 00 07 FE 1F 38 80 FF
CA40: F8 71 FC 3F 00 1C FF 81 03 F8 FF 03 00 AA 1F 3F 80 FF 07 8E E3 3F 7E 00 FF 71 E0 38 7E E0 00 F0
CA60: F3 C0 71 FC C0 0F 1C 38 0E E0 F8 FF 03 38 70 00 C7 FF 1F FF F1 E3 07 8E 1F 3F 00 E0 FF 01 1C 78
CA80: 3F 00 C0 FF 03 38 FE 1F C0 FF E2 07 8E 03 FF 81 83 FC 0F 1C C0 7F 00 07 F0 E3 F8 21 FE 07 0E 9C
CAA0: C7 0F E0 F8 01 00 C7 8F 03 FF 7F FC C0 81 03 C0 8F 1F C7 F1 1F 3F 0E 1C 3F 70 FC FF 81 1E F8 01
CAC0: 00 C7 89 83 38 F0 1F 07 80 1F F8 F0 FF C7 01 1C 04 8E E3 07 7E 1C FF 71 1C C0 FF 9F 00 F0 1F FF
CAE0: F1 03 3F 70 E0 00 F0 E3 3F 8E 1F 38 8E 03 F8 71 FC F8 0F E0 07 78 1C F8 8F 1F 00 FE E3 C0 FF 03
CB00: 07 8E EF 3F 80 03 F8 71 1C C0 7F 1C C0 FF 03 38 0E FC 00 F0 FF C0 81 EF C7 0F E0 3B 70 A0 FF 81
CB20: 1F 38 0E 00 D0 FF E3 00 FE 1F 00 8E FF 00 F0 FF F8 81 E3 07 00 E2 3F 0E 9C FF 81 FF F8 FF 03 FF
CB40: 81 03 C0 0F 00 F8 71 02 C0 FF 1F 00 0E 1E 00 F0 FF F8 81 FD C0 71 EC FF 7F 1C C7 8F A3 00 7E E0
CB60: 38 80 FF 3F 0E E0 00 8A 03 3F FE 0B F8 01 10 07 7E FC C7 7F 00 07 7E FC 00 FE 1F 28 FE FF 00 0E
CB80: E0 38 0E FC 3F 0A 00 FF 0F 1C 3F FE E3 C0 7F 00 07 8E 1F 38 FE E3 C0 F1 FF C0 8F FF 00 70 FC 47
CBA0: 01 E0 FF 70 00 E8 71 00 FF 7F E0 00 0E 00 FF FF 03 C7 0F 00 C0 FF FF 00 F0 FF C0 21 A0 3F 00 E0
CBC0: FF 7F E0 07 80 1F F8 75 FC 27 7E 00 C0 8F 03 F8 F1 03 07 FE 03 07 F0 FF C0 81 FF 3B 70 FC 3F 00
CBE0: 10 F8 0F E0 FF 07 00 C0 7F E0 C7 0F 9C F8 7F E2 38 80 1F C0 FF FF 38 0E E0 07 80 FF C7 01 E2 38
CC00: 70 A0 3F FE 03 07 7E 1C 00 FE FF C7 01 FC 07 70 1C FF 81 63 FF 0F 1C FF 0F E0 C0 7E 00 07 FE 1F
CC20: C0 F1 1F 00 F0 FE 07 70 FC C7 01 01 C2 8F E3 3F F0 1F 00 70 00 C7 8F FF 03 F8 E1 07 7E E0 FF 01
CC40: 1C 3F 00 E0 FF BF 03 D2 8F 03 C0 7F EC F8 F1 03 38 FE 1F F8 81 9F 00 0E FC 3F 0E FC 3F 00 00 FF
CC60: 0F 00 FF 0F 00 28 FE 03 3F 00 1C C0 FF FF C7 09 00 07 F0 FF EF 71 02 38 00 FC FF 7F BC 38 00 00
CC80: FF FF 1F 07 00 00 F8 8F 1F F8 01 14 F8 FF 7F 2F 00 1C C0 FB FF 3F 00 FC 00 80 E3 FF 71 00 E0 81
CCA0: 03 FF FF 03 07 0E 60 FB FF E3 00 FE 03 C0 FF FF 38 80 1F 38 F0 EF C0 81 BF C0 A1 FF 38 70 FC 07
CCC0: 80 FE 3F 80 03 FF 01 E0 FF 0E E0 E0 0F E0 C0 8F 0B 00 FE 1F 38 F0 E3 82 80 FF FF 76 A0 38 80 FF
CCE0: B8 FE 1F 38 0E 40 27 BE FF 07 00 E0 FF 0F F4 C5 01 1C C0 F1 FF 07 70 00 00 70 FC FF 7F 00 38 80
CD00: 83 FF 0F E0 C0 FF FF C0 7F E0 FB 0F 00 C0 FF 1F 00 0E 1C FF F1 E3 38 01 E8 C0 FF 1F 00 F0 1F 2F
CD20: F0 FF 00 00 9C C2 7E FC 3F F0 E3 00 F0 1F FA F9 E3 38 00 FC 3F 00 FC 3F 00 E0 C0 FF E3 07 F0 03
CD40: F8 F1 FF 00 00 FC F8 01 E0 FF 7F 00 80 FE 1F C0 F1 1F C7 D1 0F 3F 00 E0 FF 0F E0 C0 0F E0 C0 7F
CD60: E0 00 7E FC C0 F1 FF C7 F1 E3 38 3E 1C F8 01 00 FF 71 FC 00 7E EC 3F F0 1F 00 F0 1F C0 0F 1C FF
CD80: 0F 1C FF 01 FC C7 81 1F 00 FA 8F C7 01 00 3F FE 1F 00 80 1E D0 7F FC 00 7E E0 3F 80 FF 07 00 14
CDA0: FF 0F 1C FF FF E3 BF 0E E0 3F A0 E3 00 80 03 FF 0F 00 FF F1 02 38 F0 FF C0 F1 0B 38 FE 1F E4 0F
CDC0: 1C F8 0F 1C FF 01 FC 07 0E E0 07 0E FC C2 01 FC 3F FE E3 C0 7F E0 00 7E 00 38 70 FC 3F F0 03 04
CDE0: 00 FD FF 01 FC 3A 00 E0 FF 71 FC 3F 80 E3 07 7E 00 E8 0F E0 F8 FF 03 F8 71 80 F8 01 FC 07 FE 03
CE00: 03 FE 03 FF F1 E3 00 AE E3 FF 81 03 C0 0F FC 3F 80 FF C0 0F FC 87 00 FE 00 F0 03 00 FE 1F FB 0F
CE20: FC F8 21 F0 07 0E FC C0 0F FC 07 F0 E3 F8 81 FF 38 0E E0 00 7A E8 C7 0F 00 3F 00 FC FF 01 FC 38
CE40: F0 03 07 FE BF 38 0E FC 07 08 FC 3F 70 BC F8 01 E0 FF 0F 1C C2 0F 00 F8 FF 03 C0 F1 E3 3F 8E 1F
CE60: 00 FE 03 F8 0F E0 C0 7F 00 FF 71 E0 FF F1 03 38 F0 FF 00 80 1F F8 7F 00 07 80 E3 FF 7F 00 C0 07
CE80: F4 FF 0F E0 E7 8F 83 00 F0 0B FF 8F 03 FF 7F 00 3F 00 E1 07 70 FD 3F 70 E0 07 7E 00 C0 FF 03 C7
CEA0: 0F E0 3F 80 1F A8 7E 00 FF 7F 1C 00 2E FC 03 7E EC 3F 00 1C 3F FE 03 28 F0 FF 00 8E FF F8 01 E0
CEC0: 3F 00 FC 27 7E 1C F8 0F 00 F8 7F 00 38 FE E3 00 F0 F7 FF F1 03 07 F0 1F 00 04 E0 FF 0F 1D 3F 80
CEE0: E3 3F F0 1F 20 80 1F 07 FE 0F 00 FE FF 00 00 FC 27 B0 FF 07 F0 03 FF 0F E0 F8 7F E0 07 7E FC C0
CF00: 81 E3 2F F0 1F F8 7F E0 07 0E 00 FF 7F E0 05 A0 03 FF 0F FC C0 8F 03 C0 8F 7E 00 00 FC 27 80 FF
CF20: 3F 00 00 FF FF 1F 00 8E FE C0 7F 00 00 0A FC FF FF 1F 00 00 7C 00 FE FF C0 7F EE 00 70 1C C0 FF
CF40: 03 3F FF 1F C0 0F 00 00 F0 FF FF 01 1C C0 81 03 F8 FF FF F8 2F 00 C0 01 E0 FF 89 FF 10 D0 FF C0
CF60: 00 E0 FF 7F E0 FF 0F E0 07 00 1C FF FF 1F 00 B0 83 C0 F1 FF 07 80 FF FF 0B 00 00 F0 02 FF 8F FE
CF80: 3F 00 E0 C7 A1 FD E0 FF 02 38 00 FD 03 FE 1F C0 01 FC C0 2F 00 FF BF E3 C0 7F 1C 3F 30 00 3F F0
CFA0: 03 C3 FF 1F 00 08 FD 00 81 FF 3F 80 FF 07 00 02 FF 7F 1E FF 2F 1C 00 FE 1F 00 F0 03 C4 7F 80 3F
CFC0: 7E 00 F8 7F 1C F8 0F 1C E0 01 FE 07 0A FC 07 80 FF 07 B0 E3 3F F0 03 C0 FF 1F C0 7F FC FF 80 1F
CFE0: 00 FE FD 07 00 10 00 80 FF FF 81 1F 38 C0 1F F8 FF 0B 00 A0 E3 FF 0F 00 3F 80 FF 3A F0 FF 00 80
D000: 1F 3F F0 FF 07 00 E0 BF 0E 00 F8 FF 01 F8 FF 1F 38 80 FF 07 F0 03 FF 00 E0 FF 01 A0 F8 0F E0 FF
D020: 0F 00 C0 FF 1F C0 FF 02 F8 0F 00 FF 81 FF 05 80 FE 27 00 FC FF 0F 00 C0 DF 03 F8 FF 1F C0 40 01
D040: C0 FF 03 FF FF 03 00 F0 BF D0 01 E0 FF 0F 00 F8 7F 00 FF FF 01 00 F0 FF 03 F0 BF 00 F0 BF D0 01
D060: F4 FF 01 E0 FF 05 00 3F FE 1F 00 FE 13 58 A1 9F FF 01 E0 C2 0F FC 03 0E FC 07 80 EA FF 81 1F 00
D080: F0 9F C0 FF FD A4 00 E0 FF 01 E0 FF 01 1D C0 FF 17 00 FE 1F E0 F1 FF 00 00 E0 FF BF EF 00 A0 5F
D0A0: 00 F8 1F C0 3F 00 FB 7F 00 FF 2F 00 7F 01 E0 7F 01 BD 3F 00 FE 05 80 FF 3F 08 90 FF 0F 00 FD FF
D0C0: 13 00 F8 FF 00 30 FE D7 3F 00 40 FF 01 3C F0 FF 27 00 E0 FF 01 00 FA FF 03 E0 FF 02 00 FE EF 3F
D0E0: 01 80 FF 01 7C FF 01 7C 9F 00 4C 00 FE FF 67 3F 00 F8 57 00 FC CF 0F 02 F0 FF 00 F0 FF 80 BE 1D
D100: 80 A4 FD C0 3F F2 3F 00 1E 10 B1 FF 3F 00 AC 3F 74 AC 58 0B E2 DB 0F E0 3F 74 00 FF 01 A0 9F FE
D120: 1F 00 FE 0B 00 F0 FF FF 01 00 BF 00 A0 FF FF 5D 00 06 51 C5 FE FF 05 80 69 BF 36 89 04 81 FF 3F
D140: 00 FE 1F 00 F5 07 FE 03 A0 B6 7F 62 35 61 FB 0F 00 F8 D1 BF FD 01 00 45 05 EC FF FF 02 80 7E 02
D160: FA 4F 02 FB 0F 00 ED FF 6B 00 80 FF 07 B0 FF 02 A4 1D DC 0F E0 FD 0F 60 FF 08 AC 00 F8 FF 00 F7
D180: 5F 00 3E 40 FF 47 40 FF 0B 40 DA 7F 70 03 F6 96 C0 F6 5D 24 A9 8B 2C AB 4D D5 AA AD E0 05 EC 27
D1A0: 80 FF 1F F0 81 DA C9 01 E8 FF 1F 00 C0 FD 47 57 5E 84 2E 00 FB DF AA 9B 88 82 25 B0 7F DF 2B 00
D1C0: BB A4 0F 80 FE 97 02 FE 4F A4 54 6A A5 54 A2 FF 2E 40 FF 01 11 FC 4B 49 E8 FF 82 E8 26 B0 6B 59
D1E0: B5 22 BA FF 22 80 FF 00 00 FE FF 09 74 D3 5E 00 E8 FF 49 12 D9 6F 04 A1 FF 22 2B 89 D0 FE 17 6C
D200: 2B 82 A4 DA FE 17 A8 6A 17 00 EC FF 0B EC 64 89 AA DC A4 52 6F 45 68 DF 55 15 20 B1 5F 55 B1 FF
D220: 00 F4 83 C4 7E 11 EA B6 52 3F 01 ED 17 00 7D DA D5 AD D4 4A A0 FB 01 A2 FB 25 B2 5D B5 89 24 D8
D240: 7D 27 80 7F DB 08 60 FB 5F 80 E0 BE 56 A5 5E 91 04 A9 75 97 F6 4F 24 41 4A DB 2E 51 DF 46 50 9F
D260: A8 B6 A5 A4 52 D5 B6 95 D0 B7 8A 20 FB 17 04 F4 FF 92 08 6A BF 08 52 DF 25 4D AA 5E 55 A4 BA 02
D280: DD B7 82 D8 5F 02 55 55 55 BB AA 5D 85 44 EA 93 28 E9 FB 2B 89 A4 36 49 93 B4 FD 25 C8 EE 2A A1
D2A0: 6A 02 F7 57 52 B5 55 25 25 69 7B 49 AA 55 D9 B6 44 AB 52 52 37 52 7B 4B 52 AB 44 6D 93 AA AA 6C
D2C0: DB AA 90 DA 95 20 D5 FD 25 A4 6E 9B 00 69 EF AE 12 55 55 55 55 B5 15 AA 56 95 D4 B7 92 52 A5 6A
D2E0: 25 B9 B7 12 A9 6D 92 54 6D 5B 05 ED 2D 21 55 AF A4 AA 6D 2B 11 D5 B6 95 A4 D6 56 84 D6 B6 55 4B
;# DPCM 5
D300: 07 F0 1F FF 01 E0 3F 80 FF C0 7F 94 00 7E EA 07 80 FF 07 F0 1F F8 0F 00 FF 81 FF 00 FE 43 03 F0
D320: 9F A8 0E A0 3F F0 FF 00 F0 BF 10 80 FF 07 F0 E2 FF 09 E0 00 FE 03 F8 7F E0 3F 80 FF C0 7E A0 3F
D340: F0 03 C0 2F FC 03 80 FF 07 7E 00 FF 01 1C F8 FF 03 00 FE 1F C0 AF 1F F8 81 FF 07 78 00 F8 B1 03
D360: FF 80 FF 07 06 E0 07 FE 03 F8 2F 00 3F FE 63 00 B0 1F F8 A1 B7 00 FE 03 3F 80 FF 07 80 FF DD 7F
D380: 00 F8 0F 02 80 FE 1F 38 80 FF 00 7E B4 FD 7F 00 FF 01 FC 00 2E E0 FF A1 03 C0 7F E0 00 7E FC 3F
D3A0: 00 FC C7 7F 00 FF 75 02 C0 7F E8 00 7E E0 3F 80 FF C0 7E E0 07 7A EC 3F 00 9C F8 0F 00 3F F8 0F
D3C0: C0 7F E8 07 80 9F 3F 80 1F C0 7F 00 3F F0 1F F8 0F E0 3F 86 0B 00 B0 FF 00 FE F3 BF 00 FC FF 0F
D3E0: 00 3F 80 1F FA 00 FC 07 F0 03 F8 7F 80 BF 0E E0 FF 0F 00 27 FF 03 38 80 FF 07 F0 1F F8 09 A0 FA
D400: 7F 00 03 F0 FF 00 0E E0 3F 80 FF 02 FE 03 FF 01 E0 FF 0F E0 3F F0 1F C0 01 FC 07 F0 02 F8 7F 00
D420: E8 7F E0 3F 80 FF 00 FE 03 1F F0 9F 00 FE 1F 3F 80 01 F8 7F E0 3F 80 FF 07 00 E0 FF 01 00 E8 FF
D440: 03 80 FE BF C0 7F 00 FF 8F FF 00 F0 0F BF 00 FC 03 08 FE BF 00 FC 07 FE 02 C0 FF 1F 07 7E 10 28
D460: 80 FF 07 A4 FD 3F 00 FC 3F 00 FC 3F 00 EC 00 FE 1F C0 7F 00 FF F1 1F 00 7E E2 2F 00 FC FF 0A 80
D480: 3F 80 FF 00 FE 0F C0 2F E0 07 FE 0F C0 7E 00 F8 FF 0B C0 7F E0 FF 01 E0 E7 7F 00 E8 01 FC 87 0A
D4A0: E0 FF 0B E0 3F 80 BF FC 05 E0 07 F0 FF 03 00 80 FF 0F FC 07 B0 FF 2F 00 FC 07 FE 03 00 F8 1F FF
D4C0: 00 E0 3F F4 0B C0 5F 02 3F F0 1F 00 FE 03 F8 0F BE C0 FF 03 F8 01 E0 FF 01 00 F8 7F 00 3F F0 FF
D4E0: C7 0A E0 07 F8 FF 00 F0 FF C7 81 1F C0 7F 00 FB 0F 00 FF 09 00 E0 0F FC EF 09 E0 FF 0F 00 F8 BF
D500: 1F 3F 00 FC 07 80 1F C0 FF FF 00 00 E8 3F 3F 00 F8 FF 03 C0 FE E3 07 F0 1F C0 7F 00 F8 0F E0 07
D520: F0 EF 3F 00 FC 3F 08 00 FF 0F FC 00 FE 0B F8 0F FC 00 F8 1F 00 FE 9F C0 0F E0 FF 01 00 FA FF 03
D540: 38 80 FF 07 08 E0 FF 01 E0 BF 80 FF C0 FF 0B C0 7F E0 BA 80 11 FA 7F 00 F8 FF FF 00 00 E0 FF 01
D560: E0 FF F1 FF 38 F0 1F 00 0E E0 3F 80 03 F8 0F 00 FF 7F 00 C0 FF 03 3F 20 E0 FF 0F E8 07 F0 FF 00
D580: 7E BE 00 F0 03 E0 FF 1F 00 F0 FF 3F 00 AC FF 0F 00 FF 0F EC 07 F0 1F 00 FE 0F 80 FE 03 F8 0F 80
D5A0: EF 7F 00 00 FE 5F 23 00 FC 3F F0 1F C0 FF 1F 00 FA E3 07 00 FC C7 08 F0 07 F0 0B FF 01 FC 07 FE
D5C0: 03 C0 FF E3 07 00 FC FF 80 16 F8 01 FC 07 F0 E3 FF 01 E0 FF FE E2 C0 FF 03 00 00 EC 3F 80 1F 3F
D5E0: 70 EC 07 F0 1F C0 3F 00 C0 FF 1F 00 FE 1F FA 01 E0 3F 80 FF 00 80 FF 07 80 FF FF 09 00 7F FF 03
D600: F8 80 9F 3F 00 FC 07 F0 0F 28 80 FF C7 01 E0 FF 01 E0 FF 07 E0 02 8E FF 07 D6 02 F8 0F E0 3F A0
D620: 9F 00 FE FF 00 80 FF 3F 00 FE 3F 00 FC FF 8B 83 3F 80 1F C0 7F 00 C0 7F 02 FF 01 E0 FF 0B 00 05
D640: FE 0B 3F 00 FE C7 7F 00 FF 0F 00 FF 0F E0 C7 27 80 1F FE 03 C0 7F E0 07 FE 0F C0 0F E0 3F 80 FF
D660: 00 FE 1F C0 0F 1C FF 01 00 FF 0F 00 F8 7F A0 07 FE 03 F8 7F 00 FF 80 1F C0 FF 1F 00 7E 00 FF 81
D680: 1F F8 0F E0 07 F8 FF C0 F1 1F F8 71 E0 FF 01 E0 07 80 0F E0 7F E0 E8 0F 00 FC 7F 02 3F 80 FF 00
D6A0: A0 FF EF 0F 00 FF 01 FC 07 80 FF 00 80 FF 3F 00 FC FC 0F 00 FF 81 E1 3F B0 1F 00 7E 00 FF 7F A2
D6C0: 00 F0 FF C0 80 FF 00 FE 03 FB 81 03 BB F0 FF 00 F0 FF 00 0E FC 3F 80 1F FF 01 FC 00 FA 02 FB 0F
D6E0: E0 FF 00 00 3F FE 1F F8 0F E0 07 70 E0 FF 01 FC 3F 00 00 FF 0F 00 F8 F5 0B 2F F0 1F C0 4F FC 07
D700: F8 03 78 81 FF 07 80 FF C0 7F A8 E8 7F 02 03 F0 FF 00 88 FF 07 00 FC FF 0F 00 FF 81 1F C0 7F 00
D720: F8 7F 00 FF 01 1C C0 7F 00 FF 89 FF 07 00 E0 FF F8 0F F8 0F 00 F8 0F EC 00 FE 1F C0 FF 1F 00 FE
D740: 03 F8 F1 1F C0 0F 01 F8 0F E0 07 F0 9F 04 FE 03 FF 81 03 F8 8F FF 00 FE 1F 00 FE EB 07 F0 FF 00
D760: F0 03 F8 0B FC 07 FE 02 00 FE FF C0 0E 00 FF 01 FC 2F FA 1F 00 3E E8 3F 0E FC 07 00 FC 07 00 EA
D780: FF 0F E0 07 80 FF 07 F8 03 F8 01 FE C2 0F 1C F8 CF 81 3F 0E FC 07 70 E2 3F 80 9F 3F 00 FC 07 0A
D7A0: A0 FA 8F 1F 3F 7E E0 00 F0 03 FF 01 E0 3F 80 FF C0 0F E0 3F A0 FF 00 BE FF 02 F0 FE 00 80 FF 3F
D7C0: F0 03 F8 0F 00 FF 81 1F F8 01 FC 07 7E FC 07 80 FF 07 80 1F 00 FE EB 07 B0 FF 80 00 FC FF 01 E0
D7E0: 3F 00 FC FF 81 03 C4 BF FE 07 F0 1F C0 0F FC C0 2F E0 C7 0E 00 E0 7F 02 27 FE FF 00 FE E3 07 80
D800: FF 00 B4 FF 38 7A 00 3F F0 03 FA F5 02 3F 80 FF C0 2F 00 FF 81 FF 04 00 A0 FF 0F E0 BF 0E E0 07
D820: FE 03 FF 81 9F 00 FE 03 3A F0 1F 22 D0 FF C0 0F 08 F8 0F FC 00 FE 1F 00 FE FF 02 F0 FF 00 70 82
D840: 3F 7A FC 27 00 0C FB 0F 00 3F F0 1F F8 A9 03 FA 0F F5 C2 07 FC FF 01 E0 FF 01 00 F8 0F FC C0 7F
D860: 80 C0 2F FC 07 7E 1C C0 0F E0 EF 89 FF C0 0F E0 C7 7E 02 E8 0F 00 FF 8F 0A F8 FF 03 F8 01 FC 00
D880: FE E3 27 80 7F 07 00 E0 3F FE 1F 80 FE 03 C0 7F 00 3F FA 0F C0 7F 00 00 FE FF 00 F0 F3 3F F0 03
D8A0: 3F F0 0F F8 01 FC 07 F0 03 07 FE BF 07 F0 0B 00 F0 1F 3F 80 FF 07 0E FC 07 F0 17 FD 0E 80 FF 01
D8C0: FC 3F 80 1F F8 00 EE 00 FE 83 07 FE 03 00 7E E1 07 FE FF C0 7F 00 F8 80 FF C0 0F FC 00 F0 FF 38
D8E0: F0 03 F8 7F 02 3F 80 03 3F F0 1F C0 0F A8 E0 FF 03 F8 7F E0 02 3E FE 00 FE 03 3F F0 1F E8 01 FC
D900: 07 F0 1F 3B 7E 00 07 FE 03 E8 7F 00 FF F9 03 00 7E FC C0 7F 00 C0 8F FE 07 00 BE C0 FF 9F 03 F0
D920: 03 FA 01 FC FF 01 00 3F F4 1F 3A 80 FF 3F 80 0B F8 0F FC 00 7E E0 FF 01 FC E8 01 BC 00 FE 9F 80
D940: FE 03 07 F0 1F C0 7F EC 00 FE 03 C0 AF 1F 3F B0 0F E0 81 FF 83 7E A0 07 FE 1E C0 0F 00 FF 09 00
D960: FF FF 02 FF 01 02 F8 0F A0 FF 0F 00 F8 0F BC C0 FF 9F C0 0F E0 07 7E E0 3F 80 FE 07 7A E0 00 FE
D980: FF 00 2E E0 3F F0 0F FA 81 FF 02 70 E8 07 B0 1F F8 31 00 FF 81 0B FF 0F FC F8 00 E0 3F A0 1F F8
D9A0: 81 03 3F 00 FE FF 81 1F F8 01 FE 07 F0 03 F8 89 1F C0 7F 00 F8 0F FC C0 0F E0 3F 7E 08 F8 0F 9C
D9C0: F8 0F E0 EF 0F E0 07 F8 E2 3F 80 BF C0 0F 5C 00 FA 1F 38 F0 1F C0 FF 63 03 C0 FF 03 80 FF 00 FA
D9E0: 1F F8 81 FF 00 7A FC 07 F0 1F 38 80 FF 00 F8 ED 07 F8 0B 38 00 FE 3F 30 FC 07 A0 FF 28 80 FF 83
DA00: 7E E0 3F 80 0F FC C1 1F 20 FE 63 C4 87 6E 23 F0 BF 00 F8 1F 2B A0 1F 2A F4 17 05 FF 02 FB 80 FD
DA20: 2A 81 FE D0 0E FC 02 7E A1 62 7F A0 2F 81 1E F8 3F 60 C0 FF 55 00 F4 5F A2 3E 68 52 F7 91 04 FE
DA40: 03 FA 01 BD BF 80 4E DC D0 BF 80 CA 17 E0 7F 00 FB 8B 1E A0 B8 1F F8 89 FE 00 FE 02 E0 7F A2 3F
DA60: 80 BF 00 F8 FF 02 F0 1F F8 B1 02 D8 FE 0B C0 0F FC 07 7A F1 27 80 FE 07 A0 8F DA AB 11 C0 7F 01
DA80: FD 0F E0 DF 01 E0 C7 3E 90 ED 7E 00 FC FA 03 E0 0F E8 EC 0F E0 3F 40 55 7F 41 6E C0 7E 02 FC 3F
DAA0: 02 2B F0 9F C0 7F 80 FA 0F E8 07 7E 80 3F A0 5F 40 7F E2 07 7A 61 27 C8 7D 13 C1 9F D0 3F 80 EC
DAC0: 2F A0 3F A0 BF 24 05 FD 85 A6 4A FC 57 11 94 FA 8B 60 C5 FE 27 04 E0 FF 80 B7 1F 00 7C FF 00 1E
DAE0: EC 7F 02 00 FF 4F C0 5E 6A C5 3F A0 9A B8 9F 00 FE 03 FF 01 FC 00 FB 6D 02 F4 9F 00 FE 9D 22 F0
DB00: 49 FF 01 E8 93 D0 FF 00 F0 9F C0 2F AC D0 7F A0 17 A9 5E A0 F6 1F 80 CE FD 00 B6 5D 80 FE 82 9F
DB20: A0 FF 00 F8 17 7D 01 FC D2 88 FF 00 F0 FF 00 FE 1F 00 FE 03 C0 7F ED 04 F0 8F 2A 55 E0 FF 01 E0
DB40: FF 0E 00 DF 7E 02 E8 0B FC 03 FE 82 3F 00 FC 27 36 F2 05 F0 5F C0 7F 00 FC 3F 00 3F B1 F6 05 F0
DB60: 43 5F 21 A9 FF 01 10 FC 0F BE 00 FE 03 FA 0F F0 C5 7F 00 1F 7A 49 E0 7E E2 05 B6 53 2F C0 FF 00
DB80: 7E EA 02 FA 03 FC 0F E0 C7 56 A0 FF 00 FE 2A 80 FF 04 FE 02 FC 07 E0 DA 0F EC 2A B0 17 FD 09 FC
DBA0: 80 7E 01 FB C1 0B F8 0F FC 00 FE 0F 60 57 E8 27 F8 83 1B A0 FF 04 7E 72 03 F0 8F DD 0A E8 07 7E
DBC0: E2 07 F8 6B 02 F0 BF 24 50 EC 3F 80 FF 2A 09 E0 BF C0 8B EC 0F FC 04 7E E0 3F 00 FC 17 80 FF 03
DBE0: F4 1F C0 3F E0 27 B0 EB 2F D0 02 FF 0B E0 27 89 9E FA 05 F2 07 34 F5 03 7E B2 05 F0 9F 24 D5 55
DC00: 95 AA 96 7A D1 4A DA 55 00 FF 05 5D FC 09 FC C0 26 EA 3F C0 1F C0 FF 02 F8 09 7E 60 7F 60 2B A1
DC20: BF C0 4F 80 FB 0F E0 6A A7 76 00 F7 17 A0 3E E0 DF 2E A0 04 FE 8B 45 D7 9D 00 FE 03 3F A0 57 7B
DC40: 01 AE 9D 54 76 03 F6 0B D4 7E A8 00 FE 6F A0 B4 17 5A 4B B0 3F F5 02 F8 0F B4 D8 A9 11 FC A7 02
DC60: FA A0 0F FA 0F 60 FB 0A E8 07 F6 EA C0 5E B0 E8 0F EC 45 45 FE 07 A8 56 5D D1 81 2B FF 03 D0 F6
DC80: 4A 92 0A FC 17 F6 01 F8 0F A2 BF C0 52 3F 01 FC 3F 01 52 DB 3F 00 FF 54 12 FA 0B FC 05 B0 9F E0
DCA0: 0B FC 17 C8 8A FB 01 EC 3F C0 0B 7A B7 02 EC 07 FD 04 3F A0 9F 24 ED 03 BE 55 A0 BE 8B A8 AA B6
DCC0: 22 AB 1D FD 00 FC 07 F0 43 BF 04 EC 1F D0 FE 00 7E 01 FC 0F BE 80 7E E8 2F 80 9F D8 25 E0 2F 7A
DCE0: AA D0 0B FC A5 44 6D 7B 01 FC 93 C0 FD 02 F4 17 B8 36 E9 2B D0 17 3D C0 6F 15 81 EF 07 4B E0 BF
DD00: C0 6E 04 BF EE 00 F4 B5 AC A0 5F E8 A4 6D 2D 01 FE 5B 01 EC D3 4A AA 52 5F 70 1F C0 BF 60 4B B6
DD20: A0 F6 1F E0 56 A0 6B 85 BF A0 B4 03 FF 01 B6 2A 37 B5 BA 80 4F 5D A1 BD 00 F6 9F 00 7F EA 04 F6
DD40: 93 E0 4E F4 07 F0 0F 1B D1 6A 2F 09 F4 9F 00 5D 7B 57 00 D7 7E 02 F8 3F 00 DD 5E 91 95 DA 0A FD
DD60: 20 BD 68 BB 02 D8 7F 01 AC FE 82 13 FA 0F 10 FA 1F E0 2B 72 2B 59 6D A0 BA 9F A0 56 72 17 D4 56
DD80: 2A 5F 50 97 F6 01 FB 01 4D 7D A1 8D D8 0F F0 57 55 90 ED 06 FE C0 2E AE 64 A5 AE A0 F6 4F 80 BA
DDA0: 97 6C 2B 00 FF 27 42 3B F1 13 05 FA 1F B8 A8 6A 9F D0 02 FD 0F 70 17 D4 4D EA 25 EA E4 0B E8 1F
DDC0: 88 FE 23 58 E8 27 3E 02 EF 2E 6A 42 37 AD A4 36 EA 05 F5 E2 17 A0 6F E8 0B 74 ED 0A E8 65 DB 01
DDE0: F8 4F E0 9F 80 FE 15 50 72 3F 81 BD A4 5E 82 FD 09 AC ED 44 8E DC 45 AA DA A9 92 DA 56 50 7B 09
DE00: ED 23 F0 17 9D C0 9F C0 5F A0 3F B0 8F D0 85 7D D4 46 B4 EC A5 89 68 DB 8D 98 5A B1 1B B1 1F E0
DE20: 4E 7E 00 7E 71 2B A1 6F 95 2A 41 FF 01 BE C4 27 B0 3F 80 FF 80 7E 55 22 D5 17 15 B5 AD D8 45 E8
DE40: 07 F4 1F D8 09 7D 05 A9 EF E0 06 F4 D7 04 FC 23 5A B2 9B C8 BD 80 BE 52 D4 0F E0 9F 5A 82 7B 09
DE60: 55 FB 01 F6 85 AA 55 D4 BE 01 DD D4 8E C0 2F AD D8 89 7E A0 0E EC 27 B6 02 FB 0B 52 27 F5 03 17
DE80: AB 55 17 F4 92 3B 01 EE 3F A0 0D FA 55 40 BF A8 6D 22 BB 42 DD 27 40 FB 07 92 D5 37 A8 ED 0A E0
DEA0: AB FE 01 D0 7F 02 15 FB 03 FA A4 6E 02 7F 91 DA 05 7D 05 5F E0 1F C1 9D E0 B6 03 7D 89 AE 92 36
DEC0: B1 9B D0 49 DB 5A 90 BB 5A 42 DB 0E 74 27 AA 49 5F A1 BD 80 3E 55 EA 26 B2 2D D9 8A 9A BA 91 1A
DEE0: 7B 41 6F 09 EC 27 57 90 DD 4B F0 85 AA AE 92 26 EA 1F 58 51 7B 0B 72 27 B8 4B 6A 37 02 FB 49 49
DF00: 1F A9 93 2D B8 0F 52 F5 49 65 5B 12 3B D1 97 A4 56 95 6D 49 AA DA 05 EC 1F A0 9F F8 08 FE 12 D0
DF20: FD A2 0A 6D DA 57 40 65 BF 89 C0 7E 4A D5 4A E8 47 2B 51 9F C4 EE 40 5F 60 BF 40 ED 55 21 AD AD
DF40: 84 FD 24 A1 5F AA 24 71 3F A8 97 C4 2E 69 2B 55 AA DA 5A 52 15 7B 89 2D D1 4D 6D 09 6D 6A 37 A2
DF60: 17 D9 AA 82 F6 4D 68 89 FE 12 C1 FD 84 AA EA 23 A9 6E A2 AA 6D 13 D1 BD 80 7E B2 94 D0 FF 00 B6
DF80: 9D EC 0A 7C 25 59 49 5F 09 75 1F 81 9F D0 B5 83 1B A0 FF 20 DB 91 AD A4 B6 44 3B A9 DA 56 42 D4
DFA0: 7F A2 A0 FE A2 23 34 EA 27 0B EA 17 AA B6 92 D4 BD 80 F6 AA 15 B4 4B 2A A9 FF 00 3E 6D 13 A8 6F
DFC0: C4 5E 48 6D D5 96 E0 2E 55 6D 09 B5 DD 08 A9 BF 84 AA 3B D0 17 DC AA 92 A4 FE 11 A2 BE 15 95 56
DFE0: 5D E0 5F 80 57 A9 1D EC 4E 60 3F C8 4D 6A B5 11 7B 09 B5 2F D0 17 DC 05 B6 DA CA 12 FA 29 A9 55
;# DPCM 6
E000: FF 07 80 5F 27 0B A0 E7 8E EB 03 F0 13 07 F4 FF 87 70 0C 38 50 02 F8 FF FF 00 A0 FF 3F 00 E0 F8
E020: F1 EB F8 38 00 C0 FF 43 05 C0 FF FF 09 A2 03 27 A0 C0 FF FF 1F 80 AD 2A 80 FF FF 01 00 04 F0 FF
E040: FF 7F 00 00 FF 13 C0 FF 02 F8 01 A8 FF A9 1F FD 01 00 C0 AB FF FF 0F 00 00 FE BF 00 A0 17 F8 FF
E060: A3 3A 01 00 E0 FF FF FF 07 00 00 00 FC FF 0F FD 27 80 FF 07 00 F0 1F 7E 00 C4 FF FF FF 21 00 00
E080: 00 E0 FF FF FF FB DA 01 00 00 00 FF FF 1F F8 01 00 C0 FF FF 5F 45 00 58 09 00 F8 4F FE FF 4F FC
E0A0: 07 00 00 00 F6 FF FF FF 03 C0 01 A0 FD AF E2 2B 80 BF 00 B0 1F BF F0 03 00 FE FF 3F 00 00 F8 FF
E0C0: 1D 00 F0 FF FF 0B 00 C0 7F 00 F8 00 FD FF 0F E0 FF 01 00 C0 FF FF 42 05 EC 00 FE 1F 00 FE FD 1F
E0E0: FE 8B 04 00 E0 3F 00 FC FF 0F 00 C7 FF F7 3F 00 00 D4 FF 1F 3D 00 FC 07 00 80 FF 77 00 F8 CF 02
E100: C7 A6 FF FF 0B 1C C0 C1 1F 00 F0 BF 38 A0 FF 1F 00 E0 3F 00 00 FF D1 FF FF 09 00 F8 7F E1 07 08
E120: 00 F8 7F E0 3F 7E 02 F8 0F 00 E8 FF FF 3F 00 00 FF 01 40 FF FF 03 00 80 FF FF 2F 00 F8 7F 02 00
E140: F0 F3 C7 FF 77 00 00 E0 FF 5F A0 FF 07 A0 3F 00 00 FF 7F E1 00 F0 FF 1F 00 00 E8 7F 68 FB FF 03
E160: 50 09 80 D4 BF 4E FD 3E E8 9F 08 EC 27 00 00 FB FF FF 07 00 00 3F 81 1F C0 FF FF 2F 0A 00 00 F0
E180: E3 FF FF 17 00 00 FC A5 84 5D C0 FF FF 07 00 5C C0 FF 1F FF 01 00 F8 FF FF 00 00 00 FF FF AB FF
E1A0: 0F 00 02 20 00 FF F7 7F 00 80 7E FF 0F E8 3F 00 00 E0 07 EC FF FF FF 03 78 00 00 80 FF C0 FF F2
E1C0: DF 0E 00 00 FE EB EF FF 17 00 00 40 FF 7F 00 C0 8F 11 FF 81 FF 3F 06 00 00 F0 FF 3F F7 03 A8 0E
E1E0: 00 FF 0F 00 AF FE FF 1F 01 80 3F 00 A0 FB FF 51 5B 01 E0 17 F4 17 6A 25 EE 2F 00 52 FF 7F 82 C0
E200: 5F 00 57 77 71 07 00 FC FF FF 0B 00 00 48 FF F1 9F F8 4F 00 04 B0 EB FF FF 01 D8 01 E0 1F 80 FE
E220: 3F 80 9E C0 7E E9 7F 55 00 F8 80 FD 05 FE 81 23 B0 7F C0 FF 17 C0 AF 11 00 F4 97 FF 59 02 EC 0A
E240: 40 FF 7F 00 BF A0 4E C0 FF 03 1F 00 F5 FF 5F 00 02 00 EA FF 7F 62 3F 00 90 DD 5B 6D 3F 00 FE 13
E260: 4A 90 FA BE 02 EC DB 5D 40 BF 12 00 F0 FF 9F 00 EE 93 4A 4D C0 3F EC E0 8F BF 00 5E 00 FF 81 7F
E280: 6D 05 80 95 FA 1F C0 7F 61 3F 81 15 D8 40 FC FF A9 12 C0 FE 03 50 FB AD 92 44 4A ED AA EE FF 01
E2A0: 40 80 4E FD BF 80 5D 00 A0 FF 7F 25 E0 1F A0 76 5F 41 60 1F 74 FE E7 0B 00 40 F9 FF 47 4F 40 03
E2C0: F0 7F DC BA 03 28 F4 91 BF D4 8A 6C 25 12 D4 5F B5 DA 5B 82 2D A1 96 00 FB 5F D4 55 60 FF 81 5D
E2E0: 00 D1 BD D2 BE A2 6A 09 7C ED 45 AA 05 FA 1F C0 80 FE EC 4F 9D 00 F6 4A BB 00 4D ED 06 FE DF 56
E300: 00 9A 08 B4 D5 FE 6F 5B 01 60 2F 01 75 A7 FA 9F D0 36 8D 00 4B 52 DB FE 57 13 71 81 80 DE AE EC
E320: 4B 6D 44 47 94 F8 5F 01 FB 24 E0 AF 5E E0 A2 0A EA BF 54 49 65 57 A8 DA 44 EA 57 A9 AD 82 4A E8
E340: 9B B4 17 DD 0B A8 D2 2A B5 5B A9 97 90 24 B5 55 D5 ED 6D 29 82 6C 09 EE D0 AF 6E 52 25 A0 DB B4
E360: 5F 6A 41 92 A4 FE 76 07 47 12 5C F1 13 DD 57 A8 15 21 69 97 FA BD AA 0A 42 2B 49 76 93 FA 97 6C
E380: 25 91 7A 09 6A 13 A9 FF AA 56 92 25 48 55 FB 5B 49 22 59 75 2F 4A 6E 12 75 95 EA 4A A9 6C AB 55
E3A0: 25 A9 B2 85 FE 56 92 48 B5 92 76 55 AB 54 6D 22 B5 4A DB AA 6A 2B D1 8A D8 4B B2 25 F5 4D 85 B4
E3C0: 6D AA 4A B4 25 AB B6 5B 09 56 45 D9 4A 97 DA AA 5A AB 49 02 55 75 D7 4F 48 AA B6 41 2F 76 55 94
E3E0: A4 56 D5 5E B5 25 A4 55 92 DA 6E EA 26 A9 A4 2A A9 DD B4 AD 54 25 51 DB 54 AA 5A B5 56 85 B4 AD
E400: 30 65 46 65 5C 65 72 65 88 65 9E 65 B4 65 CA 65 E0 65 F6 65 0C 66 22 66 38 66 4E 66 64 66 7A 66
E420: 90 66 A6 66 BC 66 D2 66 E8 66 FE 66 14 67 2A 67 40 67 56 67 6C 67 82 67 98 67 AE 67 C4 67 DA 67
Startup
; Startup continues here
Startup:
E440: A9 00 LDA #$00 ;
E442: 85 F4 STA <??!BatRamInit?? ;
E444: A9 05 LDA #$05 ; Switch to ...
E446: 20 AC FF JSR MMC_Bank ; ... bank 5
E449: 20 AC B4 JSR MMC1_1+14AC ; 5 Format battery-backed RAM
E44C: 20 E8 B4 JSR MMC1_1+14E8 ; 5
E44F: 20 5E E4 JSR MMC1_2+245E ;
E452: A5 FF LDA <CUR_2000 ; Enable NMI ...
E454: 09 A0 ORA #$A0 ; ... and sprites ...
E456: 8D 00 20 STA P_CNTRL_1 ; ... are 8x16
E459: 85 FF STA <CUR_2000 ; New value of 2000 (write only ... we have to cache it)
EndlessLoop:
E45B: 4C 5B E4 JMP EndlessLoop ; ENDLESS LOOP ... interrupt driven
E45E: A9 00 LDA #$00 ;
E460: 8D 11 40 STA S_DMC_B ; [NES] Audio -> DPCM D/A data
E463: A9 0F LDA #$0F ;
E465: 8D 15 40 STA S_Status ; [NES] IRQ status / Sound enable
E468: A9 06 LDA #$06 ; Sprites and background off, color, no ...
E46A: 8D 01 20 STA P_CNTRL_2 ; ... clipping
E46D: 20 F7 E5 JSR HideAllSprites ;
E470: 20 80 E5 JSR ClearScroll ;
E473: 20 25 E6 JSR DisableVideo ;
E476: A9 20 LDA #$20 ;
E478: 20 7D E4 JSR MMC1_2+247D ;
E47B: A9 28 LDA #$28 ;
E47D: A2 24 LDX #$24 ;
E47F: A0 00 LDY #$00 ;
E481: 4C 94 E5 JMP ClearTilesOrMap ;
NMI
NMI:
;
; if(>$5C != 0) Flip name table (alternates between 0 and 2 ... 2000 and 2800)
; DMA transfer 0200..02FF to sprite memory
;
E484: A5 FF LDA <CUR_2000 ; Current value of 2000
E486: A6 5C LDX <!FlipFlag ; Flip name tables?
E488: F0 02 BEQ MMC1_2+248C ; No ... skip the flipping
E48A: 49 02 EOR #$02 ; Flip name-table addresses (2000 or 2800)
E48C: 29 7F AND #$7F ; Clear bit 7 (disable NMIs)
E48E: 85 FF STA <CUR_2000 ; Hold new value of 2000
E490: 29 7E AND #$7E ; Name table address is now either 0 or 2. (Ignore lower bit)
E492: 8D 00 20 STA P_CNTRL_1 ; Select new name table (if changed) and disable NMI
;
E495: A5 FE LDA <CUR_2001 ; Current value of 2001
E497: A4 E3 LDY <00E3 ;
E499: D0 08 BNE MMC1_2+24A3 ;
E49B: A4 14 LDY <0014 ;
E49D: D0 06 BNE MMC1_2+24A5 ;
E49F: A4 17 LDY <0017 ;
E4A1: D0 02 BNE MMC1_2+24A5 ;
E4A3: 09 1E ORA #$1E ; Sprites on, Background on, don't clip sprites or background
E4A5: 8D 01 20 STA P_CNTRL_2 ; Change hardware and ...
E4A8: 85 FE STA <CUR_2001 ; ... store new value of 2001
;
E4AA: A9 00 LDA #$00 ; Next write goes to address 0000 ...
E4AC: 8D 03 20 STA P_SPR_ADDR ; ... in sprite memory
E4AF: A9 02 LDA #$02 ; DMA source address = 0200 (from RAM)
E4B1: 8D 14 40 STA P_SPR_DMA ; Sprite DMA trigger (copy 256 bytes from RAM 0200 to Sprite RAM 0000)
;
E4B4: A9 00 LDA #$00 ; Clear ...
E4B6: 8D 05 20 STA P_BKG_SCROLL ; ... scroll ...
E4B9: 8D 05 20 STA P_BKG_SCROLL ; ... register
E4BC: A9 06 LDA #$06 ; Switch to ...
E4BE: 20 AC FF JSR MMC_Bank ; ... bank 6
E4C1: 20 80 A0 JSR MMC1_1+80 ; 6
;
E4C4: A9 3F LDA #$3F ; Set VRAM ...
E4C6: 8D 06 20 STA P_VRAM_ADDR ; ... address pointer ...
E4C9: A9 00 LDA #$00 ; ... to 3F00 ...
E4CB: 8D 06 20 STA P_VRAM_ADDR ; ... (Background Palette)
E4CE: 8D 06 20 STA P_VRAM_ADDR ; ?? Doesn't this ...
E4D1: 8D 06 20 STA P_VRAM_ADDR ; ?? ... toggle back and clear VRAM address?
;
; ?? NOPping out E4D9 causes top status part of screen to flicker on a scroll to a new map
; ?? Seems to be waiting for the VBLANK to *END* and drawing to begin
E4D4: AD 02 20 LDA P_STATUS ; Is sprite 0 ...
E4D7: 29 40 AND #$40 ; ... overlapping background?
E4D9: D0 F9 BNE MMC1_2+24D4 ; Yes ... wait for VBLANK to clear it
;
E4DB: AD 02 20 LDA P_STATUS ; [NES] PPU status
E4DE: A5 E3 LDA <00E3 ;
E4E0: F0 08 BEQ MMC1_2+24EA ;
E4E2: A9 05 LDA #$05 ; Switch to ...
E4E4: 20 AC FF JSR MMC_Bank ; ... bank 5
E4E7: 20 21 85 JSR MMC1_0+521 ; 5
E4EA: A5 11 LDA <0011 ;
E4EC: F0 2A BEQ MMC1_2+2518 ;
E4EE: A5 12 LDA <0012 ;
E4F0: F0 14 BEQ MMC1_2+2506 ;
E4F2: C9 05 CMP #$05 ;
E4F4: F0 10 BEQ MMC1_2+2506 ;
E4F6: C9 09 CMP #$09 ;
E4F8: F0 0C BEQ MMC1_2+2506 ;
E4FA: C9 0B CMP #$0B ;
E4FC: F0 08 BEQ MMC1_2+2506 ;
E4FE: C9 0C CMP #$0C ;
E500: F0 04 BEQ MMC1_2+2506 ;
E502: C9 13 CMP #$13 ;
E504: D0 12 BNE MMC1_2+2518 ;
;
E506: AD 02 20 LDA P_STATUS ; Clear bit 7 of 2002 and clear 2005 and 2006 [NES] PPU status
E509: A5 FD LDA <CUR_HScroll ; Set ...
E50B: 8D 05 20 STA P_BKG_SCROLL ; [NES] PPU scroll
E50E: A5 FC LDA <CUR_VScroll ;
E510: 8D 05 20 STA P_BKG_SCROLL ; [NES] PPU scroll
E513: A5 FF LDA <CUR_2000 ; Set ...
E515: 8D 00 20 STA P_CNTRL_1 ; ... PPU1 value [NES] PPU setup #1
E518: A5 E1 LDA <00E1 ;
E51A: 05 E0 ORA <??SND_E0?? ;
E51C: D0 1D BNE MMC1_2+253B ;
E51E: A2 26 LDX #$26 ;
E520: A9 3C LDA #$3C ;
E522: A0 4E LDY #$4E ;
E524: 86 00 STX <GP_00 ;
E526: D6 00 DEC GP_00,X ;
E528: 10 05 BPL MMC1_2+252F ;
E52A: A9 09 LDA #$09 ;
E52C: 95 00 STA GP_00,X ;
E52E: 98 TYA ;
E52F: AA TAX ;
E530: B5 00 LDA GP_00,X ;
E532: F0 02 BEQ MMC1_2+2536 ;
E534: D6 00 DEC GP_00,X ;
E536: CA DEX ;
E537: E4 00 CPX <GP_00 ;
E539: D0 F5 BNE MMC1_2+2530 ;
E53B: A5 E3 LDA <00E3 ;
E53D: D0 03 BNE MMC1_2+2542 ;
E53F: 20 2D E6 JSR ReadInputs ;
E542: A2 18 LDX #$18 ;
E544: A0 0D LDY #$0D ;
E546: B5 00 LDA GP_00,X ;
E548: 29 02 AND #$02 ;
E54A: 85 00 STA <GP_00 ;
E54C: B5 01 LDA GP_01,X ;
E54E: 29 02 AND #$02 ;
E550: 45 00 EOR <GP_00 ;
E552: 18 CLC ;
E553: F0 01 BEQ MMC1_2+2556 ;
E555: 38 SEC ;
E556: 76 00 ROR <GP_00,X ;
E558: E8 INX ;
E559: 88 DEY ;
E55A: D0 FA BNE MMC1_2+2556 ;
E55C: A9 00 LDA #$00 ; Switch to ...
E55E: 20 AC FF JSR MMC_Bank ; ... bank 0
E561: 20 25 98 JSR MMC1_0+1825 ; 0 Execute any sound processing
E564: E6 15 INC <0015 ;
E566: A5 11 LDA <0011 ;
E568: D0 06 BNE MMC1_2+2570 ;
E56A: 20 F8 E8 JSR MMC1_2+28F8 ; ?? Execute game tasks ??
E56D: 4C 73 E5 JMP MMC1_2+2573 ;
E570: 20 30 EB JSR MMC1_2+2B30 ;
E573: AD 02 20 LDA P_STATUS ; Clear VBLANK status bit
E576: A5 FF LDA <CUR_2000 ; Current value of 2000
E578: 09 80 ORA #$80 ; Re-enable ...
E57A: 8D 00 20 STA P_CNTRL_1 ; ... VBLANK NMIs
E57D: 85 FF STA <CUR_2000 ; New value of 2000
E57F: 40 RTI ; Back to endless loop (wait for next VBLANK)
Clear Scroll
ClearScroll:
; Clear the horizontal and vertical scroll origins and
; set tile (pattern) address to v1000.
;
E580: A9 00 LDA #$00 ; Clear ...
E582: 8D 05 20 STA P_BKG_SCROLL ; ... horizontal scroll ...
E585: 85 FD STA <CUR_HScroll ; ... and cached value
E587: 8D 05 20 STA P_BKG_SCROLL ; Clear vertical scroll ...
E58A: 85 FC STA <CUR_VScroll ; ... and cached value
E58C: A9 30 LDA #$30 ; Sprites 8x16 and ...
E58E: 8D 00 20 STA P_CNTRL_1 ; ... pattern table at VRAM 1000
E591: 85 FF STA <CUR_2000 ; Cached value of 2000
E593: 60 RTS ; Done
Clear Tiles or Map
ClearTilesOrMap:
; This routine clears an area of VRRAM. There are two modes: clear-tiles and clear-map.
; The value in A is the MSB of the VRAM area, and it selects the fill mode. If the
; MSB is less than 2000 then tile memory is cleared as a single large area with the
; length being passed in. If the MSB is 2000 or greater then the corresponding name
; table and attributes are filled (with different values).
;
; A is the VRAM MSB (<2000 for tile-clear, >=2000 for map/attributes)
; X is the number of 256 chunks to clear (for tile clear) or name table fill value (for map/attributes)
; Y is the attribute table fill value (used if map/attributes)
;
E594: 85 00 STA <GP_00 ; Hold name table offset
E596: 86 01 STX <GP_01 ; Hold name table fill value
E598: 84 02 STY <GP_02 ; Hold attribute fill value
E59A: AD 02 20 LDA P_STATUS ; Reset 1st/2nd flipflop (used for 2005 and 2006)
E59D: A5 FF LDA <CUR_2000 ; Get value of 2000
E59F: 29 FB AND #$FB ; Turn off ...
E5A1: 8D 00 20 STA P_CNTRL_1 ; ... bit 2 (increment VRAM writes by 1) ...
E5A4: 85 FF STA <CUR_2000 ; ... and cache new value
E5A6: A5 00 LDA <GP_00 ; Name table offest ...
E5A8: 8D 06 20 STA P_VRAM_ADDR ; ... to VRAM pointer MSB
E5AB: A0 00 LDY #$00 ; 00 to ...
E5AD: 8C 06 20 STY P_VRAM_ADDR ; ... VRAM pointer MSB
E5B0: A2 04 LDX #$04 ; Name tables are 400 bytes (4 sets of 256)
E5B2: C9 20 CMP #$20 ; Are we clearing map/atts?
E5B4: B0 02 BCS MMC1_2+25B8 ; Yes ... use 400
E5B6: A6 02 LDX <GP_02 ; No ... clearning tiles. Use this as the size (*256)
E5B8: A0 00 LDY #$00 ; 256 counts
E5BA: A5 01 LDA <GP_01 ; Fill value
E5BC: 8D 07 20 STA P_VRAM_DATA ; Store value to VRAM (and increment)
E5BF: 88 DEY ; All 256 done?
E5C0: D0 FA BNE MMC1_2+25BC ; No ... fill all 256 bytes
E5C2: CA DEX ; All sets of 256 done?
E5C3: D0 F7 BNE MMC1_2+25BC ; No ... fill all sets of 256 bytes
;
E5C5: A4 02 LDY <GP_02 ; Get the constant fill value
E5C7: A5 00 LDA <GP_00 ; Get the MSB of the VRAM name table pointer
E5C9: C9 20 CMP #$20 ; Are we clearing map/atts?
E5CB: 90 12 BCC MMC1_2+25DF ; No ... done
E5CD: 69 02 ADC #$02 ; C=1 so +3 to Offset to attributes (2000->23C0 for instance)
E5CF: 8D 06 20 STA P_VRAM_ADDR ; VRAM address select (MSB 6 bits)
E5D2: A9 C0 LDA #$C0 ; VRAM address LSB ...
E5D4: 8D 06 20 STA P_VRAM_ADDR ; ... is xxC0 (Attribute table)
E5D7: A2 40 LDX #$40 ; 64
E5D9: 8C 07 20 STY P_VRAM_DATA ; VRAM data
E5DC: CA DEX ; Write all ...
E5DD: D0 FA BNE MMC1_2+25D9 ; ... attribute values
E5DF: A6 01 LDX <GP_01 ; Restore X register
E5E1: 60 RTS ; Done
SwitchAJumpRet
SwitchAJumpRet:
; This is an efficient way to jump to a routine based on the value in A (as in
; a switch/jump construct). A list of addresses follows the JSR instruction in
; program memory. The value in A is the index of the address to take. The return
; is removed from the stack, and the list of addresses can be any length. Thus
; there is no return to the calling code. These jump-points usually just RET
; from back to the calling frame.
;
E5E2: 0A ASL A ; Two byte destinations
E5E3: A8 TAY ; Offset to Y
E5E4: 68 PLA ; Return ...
E5E5: 85 00 STA <GP_00 ; ... address ...
E5E7: 68 PLA ; ... off of ...
E5E8: 85 01 STA <GP_01 ; ... stack
E5EA: C8 INY ; Return address is pushed as one back
E5EB: B1 00 LDA (GP_00),Y ; Get ...
E5ED: 85 02 STA <GP_02 ; ... the ...
E5EF: C8 INY ; ... switched ...
E5F0: B1 00 LDA (GP_00),Y ; ... jump ...
E5F2: 85 03 STA <GP_03 ; ... value
E5F4: 6C 02 00 JMP (GP_02) ; Jump to the desired function
Hide All Sprites
HideAllSprites:
; This function hides all 64 sprites by setting their Y coordinates to F8
; which is off the bottom of the screen. The memory 200..2FF is DMA transfered
; to the sprite memory on each NMI.
;
E5F7: A0 00 LDY #$00 ; Start with memory for sprite 0
E5F9: A2 40 LDX #$40 ; All 64 sprites
E5FB: A9 F8 LDA #$F8 ; Y coordinate of F8 is off screen (hidden)
E5FD: 99 00 02 STA 0200,Y ; Set Y coordinate off screen
E600: C8 INY ; Move ...
E601: C8 INY ; ... to ...
E602: C8 INY ; ... next ...
E603: C8 INY ; ... sprite
E604: CA DEX ; All done?
E605: D0 F4 BNE MMC1_2+25FB ; No ... hide all sprites
E607: 60 RTS ; Done
E608: 85 01 STA <GP_01 ;
E60A: A9 00 LDA #$00 ;
E60C: 85 00 STA <GP_00 ;
E60E: A9 00 LDA #$00 ;
E610: 91 00 STA (GP_00),Y ;
E612: 88 DEY ;
E613: C0 FF CPY #$FF ;
E615: D0 F7 BNE MMC1_2+260E ;
E617: C6 01 DEC <GP_01 ;
E619: A5 01 LDA <GP_01 ;
E61B: C9 03 CMP #$03 ;
E61D: B0 EF BCS MMC1_2+260E ;
E61F: A9 FF LDA #$FF ;
E621: 8D 02 03 STA 0302 ;
E624: 60 RTS ;
Disable Video
DisableVideo:
E625: A9 00 LDA #$00 ; Hide all display ...
E627: 8D 01 20 STA P_CNTRL_2 ; ... components
E62A: 85 FE STA <CUR_2001 ; Cached value
E62C: 60 RTS ; Done
RESET:
;
; Configure the MMC1 and jump to E440 (Bank 7) for startup.
;
FF50: 78 SEI ; Disable interrupts
FF51: D8 CLD ; Clear decimal flag
FF52: A9 00 LDA #$00 ; Clear the PPU control register ...
FF54: 8D 00 20 STA P_CNTRL_1 ; ... truns off NMIs
FF57: A2 FF LDX #$FF ; Stack to ...
FF59: 9A TXS ; ... 01FF
FF5A: AD 02 20 LDA P_STATUS ; Wait ...
FF5D: 29 80 AND #$80 ; ... for ...
FF5F: F0 F9 BEQ MMC1_3+1F5A ; ... VBLANK
FF61: AD 02 20 LDA P_STATUS ; Wait ...
FF64: 29 80 AND #$80 ; ... for another ...
FF66: F0 F9 BEQ MMC1_3+1F61 ; ... VBLANK (1st might have been a leftover flag)
FF68: 09 FF ORA #$FF ; Reset ...
FF6A: 8D 00 80 STA MMC1_0 ; ... ...
FF6D: 8D 00 A0 STA MMC1_1 ; ... all ...
FF70: 8D 00 C0 STA MMC1_2 ; ... four ...
FF73: 8D 00 E0 STA MMC1_2+2000 ; ... MMC1 registers
FF76: A9 0F LDA #$0F ; Set MMC control to 8K CHR ROM, fixed/bank 16K PRG pages, ...
FF78: 20 98 FF JSR MMC_Control ; ... and horizontal mirroring (vertical scrolling)
FF7B: A9 00 LDA #$00 ; Set MMC reg1 VROM bank
FF7D: 8D 00 A0 STA MMC1_1 ; The cartridge doesn't ...
FF80: 4A LSR A ; ... swap VROM pages. ...
FF81: 8D 00 A0 STA MMC1_1 ; ... Just ...
FF84: 4A LSR A ; ... set ...
FF85: 8D 00 A0 STA MMC1_1 ; ... to ...
FF88: 4A LSR A ; ...
FF89: 8D 00 A0 STA MMC1_1 ; ...
FF8C: 4A LSR A ; ...
FF8D: 8D 00 A0 STA MMC1_1 ; ... --00000
FF90: A9 07 LDA #$07 ; Interesting! Put bank 7 ...
FF92: 20 AC FF JSR MMC_Bank ; ... in the low ROM bank
FF95: 4C 40 E4 JMP Startup ; Start of game
; MMC1 Info
; R0 - Control ***CPPMM
; C CHR ROM bank mode. Zelda uses 0: 8KB at a time
; PP Program ROM switch mode. Zelda uses 3: 16K fixed, 16K switched banks
; MM Name table mirroring. Zelda uses 2 or 3: vertical or horizontal
; R1 - CHR bank size ***CCCCC
; Ignored in Zelda since R0.C is 0
; R2 - CHR bank select ***CCCCC
; Ignored in Zelda since R0.C is 0
; R3 - PRG bank select ***RPPPP
; R PRG RAM enabled. Zelda sends 0, but battery-backed RAM is always enabled.
; PPPP bank select. Zelda switches banks 0-6.
MMC Control
MMC_Control:
; Set the MMC Control register (0) to value in A
FF98: 8D 00 80 STA MMC1_0 ; MMC Register 0 (control): --edcba ...
FF9B: 4A LSR A ; ... mirroring
FF9C: 8D 00 80 STA MMC1_0 ; ... mirroring
FF9F: 4A LSR A ; ... switch: c=0 high ROM, C=1 low ROM
FFA0: 8D 00 80 STA MMC1_0 ; ... size: d=0 32K (full), D=1 16K (half)
FFA3: 4A LSR A ; ... chrrom mode: e=0 8K banks, B=1 4K banks
FFA4: 8D 00 80 STA MMC1_0 ; The MMC is write-trigger (write to ROM ...
FFA7: 4A LSR A ; .. has no affect anyway).
FFA8: 8D 00 80 STA MMC1_0 ; Bits are written from LSB to MSB ...
FFAB: 60 RTS ; ... only 5 bits
MMC Bank
MMC_Bank:
; Set the MMC Bank register (3) to value in A
FFAC: 8D 00 E0 STA MMC1_2+2000 ; MMC Register 3 (ROM page switching): --edcba ...
FFAF: 4A LSR A ; ...
FFB0: 8D 00 E0 STA MMC1_2+2000 ; ... Write the ...
FFB3: 4A LSR A ; ... switching ...
FFB4: 8D 00 E0 STA MMC1_2+2000 ; ... page ...
FFB7: 4A LSR A ; ... number
FFB8: 8D 00 E0 STA MMC1_2+2000 ; The MMC is write-trigger (write to ROM ...
FFBB: 4A LSR A ; .. has no affect anyway).
FFBC: 8D 00 E0 STA MMC1_2+2000 ; Bits are written from LSB to MSB ...
FFBF: 60 RTS ; ... only 5 bits
FFC0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FFD0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FFE0: FF FF FF FF FF FF FF FF FF FF FF
FFEB: 5A 45 4C 44 41
FFF0: D7 C8 00 00 38 04 01 04 01 BE
Vectors
FFFA: 84 E4 ; NMI to E484
FFFC: 50 FF ; RESET to FF50
FFFE: F0 FF ; IRQ to FFF0 (vectored)