trunk/src/mess/drivers/snes.c
| r21609 | r21610 | |
| 184 | 184 | if (address >= 0x4800 && address <= limit) |
| 185 | 185 | return spc7110_mmio_read(space, (UINT32)address); |
| 186 | 186 | if (offset < 0x10000 && address >= 0x6000 && address < 0x8000) |
| 187 | | return snes_ram[0x306000 + (address & 0x1fff)]; |
| 187 | return spc7110_ram_read(address & 0x1fff); |
| 188 | 188 | if (offset >= 0x300000 && offset < 0x310000 && address >= 0x6000 && address < 0x8000) |
| 189 | | return snes_ram[0x306000 + (address & 0x1fff)]; |
| 189 | return spc7110_ram_read(address & 0x1fff); |
| 190 | 190 | } |
| 191 | 191 | if ((m_has_addon_chip == HAS_SPC7110 || m_has_addon_chip == HAS_SPC7110_RTC) |
| 192 | 192 | && offset >= 0x500000 && offset < 0x510000) |
| r21609 | r21610 | |
| 256 | 256 | if (address >= 0x4800 && address <= limit) |
| 257 | 257 | return spc7110_mmio_read(space, (UINT32)address); |
| 258 | 258 | if (offset < 0x10000 && address >= 0x6000 && address < 0x8000) |
| 259 | | return snes_ram[0x306000 + (address & 0x1fff)]; |
| 259 | return spc7110_ram_read(address & 0x1fff); |
| 260 | 260 | if (offset >= 0x300000 && offset < 0x310000 && address >= 0x6000 && address < 0x8000) |
| 261 | | return snes_ram[0x306000 + (address & 0x1fff)]; |
| 261 | return spc7110_ram_read(address & 0x1fff); |
| 262 | 262 | } |
| 263 | 263 | if ((m_has_addon_chip == HAS_SPC7110 || m_has_addon_chip == HAS_SPC7110_RTC) |
| 264 | 264 | && offset >= 0x500000) |
| r21609 | r21610 | |
| 359 | 359 | if (address >= 0x4800 && address <= limit) |
| 360 | 360 | { spc7110_mmio_write(space.machine(), (UINT32)address, data); return; } |
| 361 | 361 | if (offset < 0x10000 && address >= 0x6000 && address < 0x8000) |
| 362 | | { snes_ram[0x306000 + (address & 0x1fff)] = data; return; } |
| 362 | { spc7110_ram_write(address & 0x1fff, data); return; } |
| 363 | 363 | if (offset >= 0x300000 && offset < 0x310000 && address >= 0x6000 && address < 0x8000) |
| 364 | | { snes_ram[0x306000 + (address & 0x1fff)] = data; return; } |
| 364 | { spc7110_ram_write(address & 0x1fff, data); return; } |
| 365 | 365 | } |
| 366 | 366 | if (m_has_addon_chip == HAS_SUPERFX && m_superfx != NULL) |
| 367 | 367 | { space.write_byte(offset + 0x800000, data); return; } // [00-7f] same as [80-ff] |
| r21609 | r21610 | |
| 442 | 442 | if (address >= 0x4800 && address <= limit) |
| 443 | 443 | { spc7110_mmio_write(space.machine(), (UINT32)address, data); return; } |
| 444 | 444 | if (offset < 0x10000 && address >= 0x6000 && address < 0x8000) |
| 445 | | { snes_ram[0x306000 + (address & 0x1fff)] = data; return; } |
| 445 | { spc7110_ram_write(address & 0x1fff, data); return; } |
| 446 | 446 | if (offset >= 0x300000 && offset < 0x310000 && address >= 0x6000 && address < 0x8000) |
| 447 | | { snes_ram[0x306000 + (address & 0x1fff)] = data; return; } |
| 447 | { spc7110_ram_write(address & 0x1fff, data); return; } |
| 448 | 448 | } |
| 449 | 449 | if (m_has_addon_chip == HAS_SUPERFX && m_superfx != NULL |
| 450 | 450 | && offset < 0x400000) |
trunk/src/mess/machine/snes7110.c
| r21609 | r21610 | |
| 859 | 859 | UINT8 rtc_ram[16]; // 0-12 secs, min, hrs, etc.; 13-14-15 control registers |
| 860 | 860 | |
| 861 | 861 | UINT32 size; |
| 862 | UINT8 ram[0x2000]; |
| 862 | 863 | }; |
| 863 | 864 | |
| 864 | 865 | static snes_spc7110_t snes_spc7110; |
| r21609 | r21610 | |
| 1647 | 1648 | } |
| 1648 | 1649 | return snes_open_bus_r(space, 0); |
| 1649 | 1650 | } |
| 1651 | |
| 1652 | UINT8 spc7110_ram_read(UINT32 offset) |
| 1653 | { |
| 1654 | return snes_spc7110.ram[offset & 0x1fff]; |
| 1655 | } |
| 1656 | |
| 1657 | void spc7110_ram_write(UINT32 offset, UINT8 data) |
| 1658 | { |
| 1659 | snes_spc7110.ram[offset & 0x1fff] = data; |
| 1660 | } |