diff options
Diffstat (limited to 'src/mame/drivers/laserbat.c')
-rw-r--r-- | src/mame/drivers/laserbat.c | 71 |
1 files changed, 33 insertions, 38 deletions
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index b98287b6054..d0905024124 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -27,65 +27,60 @@ TODO: #include "includes/laserbat.h" -static WRITE8_HANDLER( laserbat_videoram_w ) +WRITE8_MEMBER(laserbat_state::laserbat_videoram_w) { - laserbat_state *state = space->machine().driver_data<laserbat_state>(); - if (state->m_video_page == 0) + if (m_video_page == 0) { - state->m_videoram[offset] = data; - state->m_bg_tilemap->mark_tile_dirty(offset); + m_videoram[offset] = data; + m_bg_tilemap->mark_tile_dirty(offset); } - else if (state->m_video_page == 1) + else if (m_video_page == 1) { - state->m_colorram[offset] = data; - state->m_bg_tilemap->mark_tile_dirty(offset); // wrong! + m_colorram[offset] = data; + m_bg_tilemap->mark_tile_dirty(offset); // wrong! } } -static WRITE8_HANDLER( video_extra_w ) +WRITE8_MEMBER(laserbat_state::video_extra_w) { - laserbat_state *state = space->machine().driver_data<laserbat_state>(); - state->m_video_page = (data & 0x10) >> 4; - state->m_sprite_enable = (data & 1) ^ 1; - state->m_sprite_code = (data & 0xe0) >> 5; - state->m_sprite_color = (data & 0x0e) >> 1; + m_video_page = (data & 0x10) >> 4; + m_sprite_enable = (data & 1) ^ 1; + m_sprite_code = (data & 0xe0) >> 5; + m_sprite_color = (data & 0x0e) >> 1; } -static WRITE8_HANDLER( sprite_x_y_w ) +WRITE8_MEMBER(laserbat_state::sprite_x_y_w) { - laserbat_state *state = space->machine().driver_data<laserbat_state>(); if (offset == 0) - state->m_sprite_x = 256 - data; + m_sprite_x = 256 - data; else - state->m_sprite_y = 256 - data; + m_sprite_y = 256 - data; } -static WRITE8_HANDLER( laserbat_input_mux_w ) +WRITE8_MEMBER(laserbat_state::laserbat_input_mux_w) { - laserbat_state *state = space->machine().driver_data<laserbat_state>(); - state->m_input_mux = (data & 0x30) >> 4; + m_input_mux = (data & 0x30) >> 4; - flip_screen_set_no_update(space->machine(), data & 0x08); + flip_screen_set_no_update(machine(), data & 0x08); - coin_counter_w(space->machine(), 0,data & 1); + coin_counter_w(machine(), 0,data & 1); //data & 0x02 ? //data & 0x04 ? } -static READ8_HANDLER( laserbat_input_r ) +READ8_MEMBER(laserbat_state::laserbat_input_r) { - laserbat_state *state = space->machine().driver_data<laserbat_state>(); static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; - return input_port_read(space->machine(), portnames[state->m_input_mux]); + return input_port_read(machine(), portnames[m_input_mux]); } -static WRITE8_HANDLER( laserbat_cnteff_w ) +WRITE8_MEMBER(laserbat_state::laserbat_cnteff_w) { // 0x01 = _ABEFF1 // 0x02 = _ABEFF2 @@ -98,7 +93,7 @@ static WRITE8_HANDLER( laserbat_cnteff_w ) } #ifdef UNUSED_FUNCTION -static WRITE8_HANDLER( laserbat_cntmov_w ) +WRITE8_MEMBER(laserbat_state::laserbat_cntmov_w) { // 0x01 = AB MOVE // 0x02 = CLH0 @@ -178,16 +173,16 @@ static ADDRESS_MAP_START( laserbat_map, AS_PROGRAM, 8, laserbat_state ) AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_1", s2636_work_ram_r, s2636_work_ram_w) AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_2", s2636_work_ram_r, s2636_work_ram_w) AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_3", s2636_work_ram_r, s2636_work_ram_w) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE_LEGACY(laserbat_videoram_w) + AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(laserbat_videoram_w) AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM ADDRESS_MAP_END static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8, laserbat_state ) - AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(laserbat_cnteff_w) - AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(video_extra_w) - AM_RANGE(0x02, 0x02) AM_READ_LEGACY(laserbat_input_r) AM_WRITE_LEGACY(laserbat_csound1_w) - AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(sprite_x_y_w) - AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(laserbat_input_mux_w) + AM_RANGE(0x00, 0x00) AM_WRITE(laserbat_cnteff_w) + AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w) + AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r) AM_WRITE_LEGACY(laserbat_csound1_w) + AM_RANGE(0x04, 0x05) AM_WRITE(sprite_x_y_w) + AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w) AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(laserbat_csound2_w) AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") ADDRESS_MAP_END @@ -195,11 +190,11 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8, laserbat_state ) AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(soundlatch_w) // soundlatch ? - AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(video_extra_w) - AM_RANGE(0x02, 0x02) AM_READ_LEGACY(laserbat_input_r) + AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w) + AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r) AM_RANGE(0x02, 0x02) AM_WRITENOP // unknown - AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(sprite_x_y_w) - AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(laserbat_input_mux_w) + AM_RANGE(0x04, 0x05) AM_WRITE(sprite_x_y_w) + AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w) AM_RANGE(0x07, 0x07) AM_WRITENOP // unknown AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") ADDRESS_MAP_END |