summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/carpolo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/carpolo.cpp')
-rw-r--r--src/mame/drivers/carpolo.cpp80
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)