OSDN Git Service

ram dump 対応
[unagi/old-svn-converted.git] / client / trunk / anago / vrc2a.ad
1 /*\r
2 VRCII A0,A1 swap + charcter ROM address bus shiftx1\r
3 051744 jumper G?\r
4 VRC-CPU|databus \r
5 A0 - A1|A0: xxxx210x\r
6 A1 - A0|A1: xxxx6543\r
7 VRC-CHRCTER ROM\r
8 A11-A17 = A10-A16\r
9 */\r
10 board <- {\r
11         mappernum = 22, vram_mirrorfind = false, ppu_ramfind = false,\r
12         cpu_rom = {\r
13                 size_base = 1 * mega, size_max = 1 * mega, \r
14                 banksize = 0x2000\r
15         },\r
16         ppu_rom = {\r
17                 size_base = 1 * mega, size_max = 1 * mega, \r
18                 banksize = 0x2000 / 8\r
19         }\r
20 };\r
21 dofile("vrc4.ai");\r
22 function cpu_dump(d, pagesize, banksize)\r
23 {\r
24         vrc4_cpu_dump(d, pagesize, banksize, 1, 0);\r
25 }\r
26 \r
27 \r
28 function vrc2a_ppubank_set(d, addr, i, j, r0, r1)\r
29 {\r
30         local a1 = 1 << r0;\r
31         local a2 = 1 << r1;\r
32         local a3 = a1|a2;\r
33 \r
34         cpu_write(d, addr | a1, i >> 3);\r
35         cpu_write(d, addr, i << 1);\r
36         cpu_write(d, addr | a3, j >> 3);\r
37         cpu_write(d, addr | a2, j << 1);\r
38 }\r
39 \r
40 function ppu_dump(d, pagesize, banksize)\r
41 {\r
42         local r0 = 1;\r
43         local r1 = 0;\r
44 \r
45         for(local i = 0; i < pagesize; i += 8){\r
46                 vrc2a_ppubank_set(d, 0xb000, i | 0, i | 1, r0, r1);\r
47                 vrc2a_ppubank_set(d, 0xc000, i | 2, i | 3, r0, r1);\r
48                 vrc2a_ppubank_set(d, 0xd000, i | 4, i | 5, r0, r1);\r
49                 vrc2a_ppubank_set(d, 0xe000, i | 6, i | 7, r0, r1);\r
50                 ppu_read(d, 0x0000, banksize * 8);\r
51         }\r
52 }\r