1 /*VRC7 FLASH MEMORY WRITE
\r
2 generic CPU memory bank
\r
3 cpu address|rom address |page|task
\r
4 $8000-$9fff|0x02000-0x03fff|1 |write (0x2aaa & 0x1fff) + 0x8000
\r
5 $a000-$bfff|0x04000-0x05fff|2 |write (0x5555 & 0x1fff) + 0xa000
\r
6 $c000-$dfff|n * 0x2000 |n |write area
\r
7 $e000-$efff|末尾 |fix |boot area, 未使用*/
\r
9 mappernum = 85, vram_mirrorfind = false, ppu_ramfind = true,
\r
10 cpu_rom = {banksize = 0x2000, size_max = 4 * mega, size_base = 1 * mega},
\r
11 cpu_ram = {banksize = 0x2000, size_max = 0x2000, size_base = 0x2000},
\r
12 ppu_rom = {banksize = 0x2000 / 8, size_max = 2 * mega, size_base = 1* mega}
\r
14 function cpu_dump(d, pagesize, banksize)
\r
16 for(local i = 0; i < pagesize - 2; i += 2){
\r
17 cpu_write(d, 0x8000, i);
\r
18 cpu_write(d, 0x8018, i | 1);
\r
19 cpu_read(d, 0x8000, banksize * 2);
\r
21 cpu_write(d, 0x9000, 0x3e);
\r
22 cpu_read(d, 0xc000, banksize * 2);
\r
25 function ppu_dump(d, pagesize, banksize)
\r
27 cpu_write(d, 0xa000, 0);
\r
28 for(local i = 0; i < pagesize; i += 8){
\r
30 for(local j = 0xa000; j < 0xe000; j += 0x1000){
\r
31 cpu_write(d, j, t++);
\r
32 cpu_write(d, j+0x18, t++);
\r
34 ppu_read(d, 0, banksize * 8);
\r
38 function cpu_ram_access(d, pagesize, banksize)
\r
40 cpu_write(d, 0xe000, 0x80);
\r
41 cpu_ramrw(d, 0x6000, banksize);
\r
42 cpu_write(d, 0xe000, 0x00);
\r
46 this is RC851/352402 style. RV051/353429 style is not supported.
\r
47 352402: Program ROM/ Charcter RAM/ Backup RAM/ R1 = A5, R0 = A4/ Extra Sound
\r
48 353429: Program ROM/ Charcter ROM/ R1 = A3, R0 = ?
\r
50 function initalize(d, cpu_banksize, ppu_banksize)
\r
52 cpu_command(d, 0, 0xc000, cpu_banksize);
\r
53 cpu_command(d, 0x2aaa, 0x8000, cpu_banksize);
\r
54 cpu_command(d, 0x5555, 0xa000, cpu_banksize);
\r
55 cpu_write(d, 0x8000, 1);
\r
56 cpu_write(d, 0x8010, 2);
\r
57 cpu_write(d, 0x9000, 0);
\r
59 function cpu_transfer(d, start, end, banksize)
\r
61 for(local i = start; i < end - 1; i += 1){
\r
62 cpu_write(d, 0x9000, i);
\r
63 cpu_program(d, 0xc000, banksize);
\r
65 cpu_program(d, 0xe000, banksize);
\r
67 function ppu_transfer(d, start, end, size)
\r