diff options
Diffstat (limited to 'src/mame/drivers/carpolo.cpp')
-rw-r--r-- | src/mame/drivers/carpolo.cpp | 80 |
1 files changed, 38 insertions, 42 deletions
diff --git a/src/mame/drivers/carpolo.cpp b/src/mame/drivers/carpolo.cpp index c501af749bf..85d02df92cb 100644 --- a/src/mame/drivers/carpolo.cpp +++ b/src/mame/drivers/carpolo.cpp @@ -21,7 +21,6 @@ #include "emu.h" #include "includes/carpolo.h" -#include "cpu/m6502/m6502.h" #include "machine/74153.h" #include "machine/6821pia.h" #include "screen.h" @@ -37,25 +36,25 @@ void carpolo_state::main_map(address_map &map) { map(0x0000, 0x01ff).ram(); - map(0x3000, 0x30ff).writeonly().share("alpharam"); - map(0x4000, 0x400f).writeonly().share("spriteram"); + map(0x3000, 0x30ff).writeonly().share(m_alpharam); + map(0x4000, 0x400f).writeonly().share(m_spriteram); map(0x5400, 0x5403).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0x5800, 0x5803).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); - map(0xa000, 0xa000).r(FUNC(carpolo_state::carpolo_ball_screen_collision_cause_r)); - map(0xa001, 0xa001).r(FUNC(carpolo_state::carpolo_car_ball_collision_x_r)); - map(0xa002, 0xa002).r(FUNC(carpolo_state::carpolo_car_ball_collision_y_r)); - map(0xa003, 0xa003).r(FUNC(carpolo_state::carpolo_car_car_collision_cause_r)); - map(0xa004, 0xa004).r(FUNC(carpolo_state::carpolo_car_border_collision_cause_r)); - map(0xa005, 0xa005).r(FUNC(carpolo_state::carpolo_car_ball_collision_cause_r)); - map(0xa006, 0xa006).r(FUNC(carpolo_state::carpolo_car_goal_collision_cause_r)); + map(0xa000, 0xa000).r(FUNC(carpolo_state::ball_screen_collision_cause_r)); + map(0xa001, 0xa001).r(FUNC(carpolo_state::car_ball_collision_x_r)); + map(0xa002, 0xa002).r(FUNC(carpolo_state::car_ball_collision_y_r)); + map(0xa003, 0xa003).r(FUNC(carpolo_state::car_car_collision_cause_r)); + map(0xa004, 0xa004).r(FUNC(carpolo_state::car_border_collision_cause_r)); + map(0xa005, 0xa005).r(FUNC(carpolo_state::car_ball_collision_cause_r)); + map(0xa006, 0xa006).r(FUNC(carpolo_state::car_goal_collision_cause_r)); map(0xa007, 0xa007).portr("IN1"); - map(0xb000, 0xb000).w(FUNC(carpolo_state::carpolo_ball_screen_interrupt_clear_w)); - map(0xb001, 0xb001).w(FUNC(carpolo_state::carpolo_timer_interrupt_clear_w)); - map(0xb003, 0xb003).w(FUNC(carpolo_state::carpolo_car_car_interrupt_clear_w)); - map(0xb004, 0xb004).w(FUNC(carpolo_state::carpolo_car_border_interrupt_clear_w)); - map(0xb005, 0xb005).w(FUNC(carpolo_state::carpolo_car_ball_interrupt_clear_w)); - map(0xb006, 0xb006).w(FUNC(carpolo_state::carpolo_car_goal_interrupt_clear_w)); - map(0xc000, 0xc000).r(FUNC(carpolo_state::carpolo_interrupt_cause_r)); + map(0xb000, 0xb000).w(FUNC(carpolo_state::ball_screen_interrupt_clear_w)); + map(0xb001, 0xb001).w(FUNC(carpolo_state::timer_interrupt_clear_w)); + map(0xb003, 0xb003).w(FUNC(carpolo_state::car_car_interrupt_clear_w)); + map(0xb004, 0xb004).w(FUNC(carpolo_state::car_border_interrupt_clear_w)); + map(0xb005, 0xb005).w(FUNC(carpolo_state::car_ball_interrupt_clear_w)); + map(0xb006, 0xb006).w(FUNC(carpolo_state::car_goal_interrupt_clear_w)); + map(0xc000, 0xc000).r(FUNC(carpolo_state::interrupt_cause_r)); map(0xf000, 0xffff).rom(); } @@ -235,18 +234,15 @@ GFXDECODE_END MACHINE_CONFIG_START(carpolo_state::carpolo) /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M6502, XTAL(11'289'000)/12) /* 940.75 kHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", carpolo_state, carpolo_timer_interrupt) /* this not strictly VBLANK, - but it's supposed to happen 60 - times a sec, so it's a good place */ + M6502(config, m_maincpu, XTAL(11'289'000)/12); /* 940.75 kHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &carpolo_state::main_map); pia6821_device &pia0(PIA6821(config, "pia0", 0)); pia0.readpb_handler().set(FUNC(carpolo_state::pia_0_port_b_r)); pia0.writepa_handler().set(FUNC(carpolo_state::pia_0_port_a_w)); pia0.writepb_handler().set(FUNC(carpolo_state::pia_0_port_b_w)); - pia0.ca2_handler().set(FUNC(carpolo_state::carpolo_state::coin1_interrupt_clear_w)); - pia0.cb2_handler().set(FUNC(carpolo_state::carpolo_state::coin2_interrupt_clear_w)); + pia0.ca2_handler().set(FUNC(carpolo_state::coin1_interrupt_clear_w)); + pia0.cb2_handler().set(FUNC(carpolo_state::coin2_interrupt_clear_w)); pia6821_device &pia1(PIA6821(config, "pia1", 0)); pia0.readpa_handler().set(FUNC(carpolo_state::pia_1_port_a_r)); @@ -254,26 +250,26 @@ MACHINE_CONFIG_START(carpolo_state::carpolo) pia1.ca2_handler().set(FUNC(carpolo_state::coin3_interrupt_clear_w)); pia1.cb2_handler().set(FUNC(carpolo_state::coin4_interrupt_clear_w)); - MCFG_DEVICE_ADD(m_ttl7474_2s_1, TTL7474, 0) - MCFG_7474_COMP_OUTPUT_CB(WRITELINE(*this, carpolo_state, carpolo_7474_2s_1_q_cb)) + TTL7474(config, m_ttl7474_2s_1, 0); + m_ttl7474_2s_1->comp_output_cb().set(FUNC(carpolo_state::ttl7474_2s_1_q_cb)); - MCFG_DEVICE_ADD(m_ttl7474_2s_2, TTL7474, 0) - MCFG_7474_COMP_OUTPUT_CB(WRITELINE(*this, carpolo_state, carpolo_7474_2s_2_q_cb)) + TTL7474(config, m_ttl7474_2s_2, 0); + m_ttl7474_2s_2->comp_output_cb().set(FUNC(carpolo_state::ttl7474_2s_2_q_cb)); - MCFG_DEVICE_ADD(m_ttl7474_2u_1, TTL7474, 0) - MCFG_7474_COMP_OUTPUT_CB(WRITELINE(*this, carpolo_state, carpolo_7474_2u_1_q_cb)) + TTL7474(config, m_ttl7474_2u_1, 0); + m_ttl7474_2u_1->comp_output_cb().set(FUNC(carpolo_state::ttl7474_2u_1_q_cb)); - MCFG_DEVICE_ADD(m_ttl7474_2u_2, TTL7474, 0) - MCFG_7474_COMP_OUTPUT_CB(WRITELINE(*this, carpolo_state, carpolo_7474_2u_2_q_cb)) + TTL7474(config, m_ttl7474_2u_2, 0); + m_ttl7474_2u_2->comp_output_cb().set(FUNC(carpolo_state::ttl7474_2u_2_q_cb)); - MCFG_DEVICE_ADD(m_ttl7474_1f_1, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1f_2, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1d_1, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1d_2, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1c_1, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1c_2, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1a_1, TTL7474, 0) - MCFG_DEVICE_ADD(m_ttl7474_1a_2, TTL7474, 0) + TTL7474(config, m_ttl7474_1f_1, 0); + TTL7474(config, m_ttl7474_1f_2, 0); + TTL7474(config, m_ttl7474_1d_1, 0); + TTL7474(config, m_ttl7474_1d_2, 0); + TTL7474(config, m_ttl7474_1c_1, 0); + TTL7474(config, m_ttl7474_1c_2, 0); + TTL7474(config, m_ttl7474_1a_1, 0); + TTL7474(config, m_ttl7474_1a_2, 0); TTL74148(config, m_ttl74148_3s, 0); m_ttl74148_3s->out_cb().set(FUNC(carpolo_state::ttl74148_3s_cb)); @@ -288,8 +284,8 @@ MACHINE_CONFIG_START(carpolo_state::carpolo) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 255) - MCFG_SCREEN_UPDATE_DRIVER(carpolo_state, screen_update_carpolo) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, carpolo_state, screen_vblank_carpolo)) + MCFG_SCREEN_UPDATE_DRIVER(carpolo_state, screen_update) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, carpolo_state, screen_vblank)) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_carpolo) |