trunk/src/mame/drivers/mole.c
| r17914 | r17915 | |
| 65 | 65 | |
| 66 | 66 | /* memory */ |
| 67 | 67 | UINT16 m_tileram[0x400]; |
| 68 | | DECLARE_WRITE8_MEMBER(mole_videoram_w); |
| 68 | DECLARE_WRITE8_MEMBER(mole_tileram_w); |
| 69 | 69 | DECLARE_WRITE8_MEMBER(mole_tilebank_w); |
| 70 | 70 | DECLARE_WRITE8_MEMBER(mole_flipscreen_w); |
| 71 | 71 | DECLARE_READ8_MEMBER(mole_protection_r); |
| r17914 | r17915 | |
| 106 | 106 | save_item(NAME(m_tileram)); |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | | WRITE8_MEMBER(mole_state::mole_videoram_w) |
| 109 | WRITE8_MEMBER(mole_state::mole_tileram_w) |
| 110 | 110 | { |
| 111 | | |
| 112 | 111 | m_tileram[offset] = data | (m_tile_bank << 8); |
| 113 | 112 | m_bg_tilemap->mark_tile_dirty(offset); |
| 114 | 113 | } |
| 115 | 114 | |
| 116 | 115 | WRITE8_MEMBER(mole_state::mole_tilebank_w) |
| 117 | 116 | { |
| 118 | | |
| 119 | 117 | m_tile_bank = data; |
| 120 | | m_bg_tilemap->mark_all_dirty(); |
| 121 | 118 | } |
| 122 | 119 | |
| 123 | 120 | WRITE8_MEMBER(mole_state::mole_flipscreen_w) |
| r17914 | r17915 | |
| 202 | 199 | AM_RANGE(0x0800, 0x0800) AM_WRITENOP // ??? |
| 203 | 200 | AM_RANGE(0x0820, 0x0820) AM_WRITENOP // ??? |
| 204 | 201 | AM_RANGE(0x5000, 0x7fff) AM_MIRROR(0x8000) AM_ROM |
| 205 | | AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(mole_videoram_w) |
| 202 | AM_RANGE(0x8000, 0x83ff) AM_WRITE(mole_tileram_w) AM_READNOP |
| 206 | 203 | AM_RANGE(0x8400, 0x8400) AM_WRITE(mole_tilebank_w) |
| 207 | 204 | AM_RANGE(0x8c00, 0x8c01) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w) |
| 208 | 205 | AM_RANGE(0x8c40, 0x8c40) AM_WRITENOP // ??? |
| r17914 | r17915 | |
| 306 | 303 | |
| 307 | 304 | void mole_state::machine_start() |
| 308 | 305 | { |
| 309 | | |
| 310 | 306 | save_item(NAME(m_tile_bank)); |
| 311 | 307 | } |
| 312 | 308 | |
| 313 | 309 | void mole_state::machine_reset() |
| 314 | 310 | { |
| 315 | | |
| 316 | 311 | m_tile_bank = 0; |
| 317 | 312 | } |
| 318 | 313 | |