summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/firetrk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/firetrk.c')
-rw-r--r--src/mame/drivers/firetrk.c164
1 files changed, 77 insertions, 87 deletions
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 2e9a87ea4a2..9e5d7fd7cd4 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -74,30 +74,29 @@ static TIMER_CALLBACK( periodic_callback )
}
-static WRITE8_HANDLER( firetrk_output_w )
+WRITE8_MEMBER(firetrk_state::firetrk_output_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START1 LAMP */
- set_led_status(space->machine(), 0, !(data & 0x01));
+ set_led_status(machine(), 0, !(data & 0x01));
/* BIT1 => START2 LAMP */
- set_led_status(space->machine(), 1, !(data & 0x02));
+ set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => FLASH */
- state->m_flash = data & 0x04;
+ m_flash = data & 0x04;
/* BIT3 => TRACK LAMP */
- set_led_status(space->machine(), 3, !(data & 0x08));
+ set_led_status(machine(), 3, !(data & 0x08));
/* BIT4 => ATTRACT */
discrete_sound_w(discrete, FIRETRUCK_ATTRACT_EN, data & 0x10);
- coin_lockout_w(space->machine(), 0, !(data & 0x10));
- coin_lockout_w(space->machine(), 1, !(data & 0x10));
+ coin_lockout_w(machine(), 0, !(data & 0x10));
+ coin_lockout_w(machine(), 1, !(data & 0x10));
/* BIT5 => START3 LAMP */
- set_led_status(space->machine(), 2, !(data & 0x20));
+ set_led_status(machine(), 2, !(data & 0x20));
/* BIT6 => UNUSED */
@@ -106,36 +105,35 @@ static WRITE8_HANDLER( firetrk_output_w )
}
-static WRITE8_HANDLER( superbug_output_w )
+WRITE8_MEMBER(firetrk_state::superbug_output_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
- set_led_status(space->machine(), 0, offset & 0x01);
+ set_led_status(machine(), 0, offset & 0x01);
/* BIT1 => ATTRACT */
discrete_sound_w(discrete, SUPERBUG_ATTRACT_EN, offset & 0x02);
- coin_lockout_w(space->machine(), 0, !(offset & 0x02));
- coin_lockout_w(space->machine(), 1, !(offset & 0x02));
+ coin_lockout_w(machine(), 0, !(offset & 0x02));
+ coin_lockout_w(machine(), 1, !(offset & 0x02));
/* BIT2 => FLASH */
- state->m_flash = offset & 0x04;
+ m_flash = offset & 0x04;
/* BIT3 => TRACK LAMP */
- set_led_status(space->machine(), 1, offset & 0x08);
+ set_led_status(machine(), 1, offset & 0x08);
}
-static WRITE8_HANDLER( montecar_output_1_w )
+WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
{
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
- set_led_status(space->machine(), 0, !(data & 0x01));
+ set_led_status(machine(), 0, !(data & 0x01));
/* BIT1 => TRACK LAMP */
- set_led_status(space->machine(), 1, !(data & 0x02));
+ set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => ATTRACT */
discrete_sound_w(discrete, MONTECAR_ATTRACT_INV, data & 0x04);
@@ -144,22 +142,21 @@ static WRITE8_HANDLER( montecar_output_1_w )
/* BIT4 => UNUSED */
/* BIT5 => COIN3 COUNTER */
- coin_counter_w(space->machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 0, data & 0x80);
/* BIT6 => COIN2 COUNTER */
- coin_counter_w(space->machine(), 1, data & 0x40);
+ coin_counter_w(machine(), 1, data & 0x40);
/* BIT7 => COIN1 COUNTER */
- coin_counter_w(space->machine(), 2, data & 0x20);
+ coin_counter_w(machine(), 2, data & 0x20);
}
-static WRITE8_HANDLER( montecar_output_2_w )
+WRITE8_MEMBER(firetrk_state::montecar_output_2_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
- state->m_flash = data & 0x80;
+ m_flash = data & 0x80;
discrete_sound_w(discrete, MONTECAR_BEEPER_EN, data & 0x10);
discrete_sound_w(discrete, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
@@ -174,10 +171,10 @@ static MACHINE_RESET( firetrk )
}
-static READ8_HANDLER( firetrk_dip_r )
+READ8_MEMBER(firetrk_state::firetrk_dip_r)
{
- UINT8 val0 = input_port_read(space->machine(), "DIP_0");
- UINT8 val1 = input_port_read(space->machine(), "DIP_1");
+ UINT8 val0 = input_port_read(machine(), "DIP_0");
+ UINT8 val1 = input_port_read(machine(), "DIP_1");
if (val1 & (1 << (2 * offset + 0))) val0 |= 1;
if (val1 & (1 << (2 * offset + 1))) val0 |= 2;
@@ -186,10 +183,10 @@ static READ8_HANDLER( firetrk_dip_r )
}
-static READ8_HANDLER( montecar_dip_r )
+READ8_MEMBER(firetrk_state::montecar_dip_r)
{
- UINT8 val0 = input_port_read(space->machine(), "DIP_0");
- UINT8 val1 = input_port_read(space->machine(), "DIP_1");
+ UINT8 val0 = input_port_read(machine(), "DIP_0");
+ UINT8 val1 = input_port_read(machine(), "DIP_1");
if (val1 & (1 << (3 - offset))) val0 |= 1;
if (val1 & (1 << (7 - offset))) val0 |= 2;
@@ -249,84 +246,77 @@ static CUSTOM_INPUT( gear_r )
}
-static READ8_HANDLER( firetrk_input_r )
+READ8_MEMBER(firetrk_state::firetrk_input_r)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
int i;
/* update steering wheels */
for (i = 0; i < 2; i++)
{
- UINT32 new_dial = input_port_read_safe(space->machine(), (i ? "STEER_2" : "STEER_1"), 0);
- INT32 delta = new_dial - state->m_dial[i];
+ UINT32 new_dial = input_port_read_safe(machine(), (i ? "STEER_2" : "STEER_1"), 0);
+ INT32 delta = new_dial - m_dial[i];
if (delta != 0)
{
- state->m_steer_flag[i] = 0;
- state->m_steer_dir[i] = (delta < 0) ? 1 : 0;
+ m_steer_flag[i] = 0;
+ m_steer_dir[i] = (delta < 0) ? 1 : 0;
- state->m_dial[i] = state->m_dial[i] + delta;
+ m_dial[i] = m_dial[i] + delta;
}
}
- return ((input_port_read_safe(space->machine(), "BIT_0", 0) & (1 << offset)) ? 0x01 : 0) |
- ((input_port_read_safe(space->machine(), "BIT_6", 0) & (1 << offset)) ? 0x40 : 0) |
- ((input_port_read_safe(space->machine(), "BIT_7", 0) & (1 << offset)) ? 0x80 : 0);
+ return ((input_port_read_safe(machine(), "BIT_0", 0) & (1 << offset)) ? 0x01 : 0) |
+ ((input_port_read_safe(machine(), "BIT_6", 0) & (1 << offset)) ? 0x40 : 0) |
+ ((input_port_read_safe(machine(), "BIT_7", 0) & (1 << offset)) ? 0x80 : 0);
}
-static READ8_HANDLER( montecar_input_r )
+READ8_MEMBER(firetrk_state::montecar_input_r)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
UINT8 ret = firetrk_input_r(space, offset);
- if (state->m_crash[0])
+ if (m_crash[0])
ret |= 0x02;
/* can this be right, bit 0 again ???? */
- if (state->m_crash[1])
+ if (m_crash[1])
ret |= 0x01;
return ret;
}
-static WRITE8_HANDLER( blink_on_w )
+WRITE8_MEMBER(firetrk_state::blink_on_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- *state->m_blink = TRUE;
+ *m_blink = TRUE;
}
-static WRITE8_HANDLER( montecar_car_reset_w )
+WRITE8_MEMBER(firetrk_state::montecar_car_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[0] = 0;
- state->m_skid[0] = 0;
+ m_crash[0] = 0;
+ m_skid[0] = 0;
}
-static WRITE8_HANDLER( montecar_drone_reset_w )
+WRITE8_MEMBER(firetrk_state::montecar_drone_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[1] = 0;
- state->m_skid[1] = 0;
+ m_crash[1] = 0;
+ m_skid[1] = 0;
}
-static WRITE8_HANDLER( steer_reset_w )
+WRITE8_MEMBER(firetrk_state::steer_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_steer_flag[0] = 1;
- state->m_steer_flag[1] = 1;
+ m_steer_flag[0] = 1;
+ m_steer_flag[1] = 1;
}
-static WRITE8_HANDLER( crash_reset_w )
+WRITE8_MEMBER(firetrk_state::crash_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[0] = 0;
- state->m_crash[1] = 0;
+ m_crash[0] = 0;
+ m_crash[1] = 0;
}
@@ -336,22 +326,22 @@ static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(m_playfield_ram)
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE_LEGACY(crash_reset_w)
+ AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w)
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(blink_on_w) AM_BASE(m_blink)
+ AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(m_blink)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w)
AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w)
AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w)
AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_x)
AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_y)
AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_rot)
- AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(firetrk_output_w)
+ AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(firetrk_output_w)
AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ_LEGACY(firetrk_input_r) AM_WRITENOP
- AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ_LEGACY(firetrk_dip_r)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(firetrk_input_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(firetrk_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
@@ -361,16 +351,16 @@ static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE_LEGACY(crash_reset_w)
+ AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w)
AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x01c0, 0x01c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(blink_on_w) AM_BASE(m_blink)
- AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x0018) AM_READ_LEGACY(firetrk_input_r)
+ AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(m_blink)
+ AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x0018) AM_READ(firetrk_input_r)
AM_RANGE(0x0220, 0x0220) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w)
- AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x001c) AM_READ_LEGACY(firetrk_dip_r)
- AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x0010) AM_WRITE_LEGACY(superbug_output_w)
+ AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x001c) AM_READ(firetrk_dip_r)
+ AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x0010) AM_WRITE(superbug_output_w)
AM_RANGE(0x0280, 0x0280) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", superbug_motor_snd_w)
AM_RANGE(0x02a0, 0x02a0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w)
AM_RANGE(0x02c0, 0x02c0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w)
@@ -386,10 +376,10 @@ static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(m_playfield_ram)
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_drone_reset_w)
- AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_car_reset_w)
+ AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(montecar_drone_reset_w)
+ AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE(montecar_car_reset_w)
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", montecar_skid_reset_w)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w)
@@ -398,10 +388,10 @@ static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_x)
AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_y)
AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_rot)
- AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_output_1_w)
- AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_output_2_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ_LEGACY(montecar_input_r) AM_WRITENOP
- AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ_LEGACY(montecar_dip_r)
+ AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_1_w)
+ AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_2_w)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(montecar_input_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(montecar_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END