summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fromanc2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fromanc2.c')
-rw-r--r--src/mame/drivers/fromanc2.c139
1 files changed, 64 insertions, 75 deletions
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index de971bee01a..902f6ce4e09 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -37,36 +37,33 @@ static INTERRUPT_GEN( fromanc2_interrupt )
}
-static WRITE16_HANDLER( fromanc2_sndcmd_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_sndcmd_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
soundlatch_w(space, offset, (data >> 8) & 0xff); // 1P (LEFT)
soundlatch2_w(space, offset, data & 0xff); // 2P (RIGHT)
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_sndcpu_nmi_flag = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_sndcpu_nmi_flag = 0;
}
-static WRITE16_HANDLER( fromanc2_portselect_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_portselect_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_portselect = data;
+ m_portselect = data;
}
-static READ16_HANDLER( fromanc2_keymatrix_r )
+READ16_MEMBER(fromanc2_state::fromanc2_keymatrix_r)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
UINT16 ret;
- switch (state->m_portselect)
+ switch (m_portselect)
{
- case 0x01: ret = input_port_read(space->machine(), "KEY0"); break;
- case 0x02: ret = input_port_read(space->machine(), "KEY1"); break;
- case 0x04: ret = input_port_read(space->machine(), "KEY2"); break;
- case 0x08: ret = input_port_read(space->machine(), "KEY3"); break;
+ case 0x01: ret = input_port_read(machine(), "KEY0"); break;
+ case 0x02: ret = input_port_read(machine(), "KEY1"); break;
+ case 0x04: ret = input_port_read(machine(), "KEY2"); break;
+ case 0x08: ret = input_port_read(machine(), "KEY3"); break;
default: ret = 0xffff;
- logerror("PC:%08X unknown %02X\n", cpu_get_pc(&space->device()), state->m_portselect);
+ logerror("PC:%08X unknown %02X\n", cpu_get_pc(&space.device()), m_portselect);
break;
}
@@ -91,92 +88,84 @@ static CUSTOM_INPUT( subcpu_nmi_r )
return state->m_subcpu_nmi_flag & 0x01;
}
-static WRITE16_HANDLER( fromanc2_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_eeprom_w)
{
if (ACCESSING_BITS_8_15)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffff);
}
-static WRITE16_HANDLER( fromancr_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromancr_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- fromancr_gfxbank_w(space->machine(), data & 0xfff8);
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ fromancr_gfxbank_w(machine(), data & 0xfff8);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
-static WRITE16_HANDLER( fromanc4_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromanc4_eeprom_w)
{
if (ACCESSING_BITS_0_7)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
-static WRITE16_HANDLER( fromanc2_subcpu_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_subcpu_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch1 = data;
+ m_datalatch1 = data;
- device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
- state->m_subcpu_int_flag = 0;
+ device_set_input_line(m_subcpu, 0, HOLD_LINE);
+ m_subcpu_int_flag = 0;
}
-static READ16_HANDLER( fromanc2_subcpu_r )
+READ16_MEMBER(fromanc2_state::fromanc2_subcpu_r)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_subcpu_nmi_flag = 0;
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_subcpu_nmi_flag = 0;
- return (state->m_datalatch_2h << 8) | state->m_datalatch_2l;
+ return (m_datalatch_2h << 8) | m_datalatch_2l;
}
-static READ8_HANDLER( fromanc2_maincpu_r_l )
+READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_l)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- return state->m_datalatch1 & 0x00ff;
+ return m_datalatch1 & 0x00ff;
}
-static READ8_HANDLER( fromanc2_maincpu_r_h )
+READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_h)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_subcpu_int_flag = 1;
+ m_subcpu_int_flag = 1;
- return (state->m_datalatch1 & 0xff00) >> 8;
+ return (m_datalatch1 & 0xff00) >> 8;
}
-static WRITE8_HANDLER( fromanc2_maincpu_w_l )
+WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_l)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch_2l = data;
+ m_datalatch_2l = data;
}
-static WRITE8_HANDLER( fromanc2_maincpu_w_h )
+WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_h)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch_2h = data;
+ m_datalatch_2h = data;
}
-static WRITE8_HANDLER( fromanc2_subcpu_nmi_clr )
+WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_nmi_clr)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_subcpu_nmi_flag = 1;
+ m_subcpu_nmi_flag = 1;
}
-static READ8_HANDLER( fromanc2_sndcpu_nmi_clr )
+READ8_MEMBER(fromanc2_state::fromanc2_sndcpu_nmi_clr)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_sndcpu_nmi_flag = 1;
+ m_sndcpu_nmi_flag = 1;
return 0xff;
}
-static WRITE8_HANDLER( fromanc2_subcpu_rombank_w )
+WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_rombank_w)
{
// Change ROM BANK
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
// Change RAM BANK
- memory_set_bank(space->machine(), "bank2", (data & 0x0c) >> 2);
+ memory_set_bank(machine(), "bank2", (data & 0x0c) >> 2);
}
@@ -206,15 +195,15 @@ static ADDRESS_MAP_START( fromanc2_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE_LEGACY(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ_LEGACY(fromanc2_subcpu_r ) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r ) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITE_LEGACY(fromanc2_gfxbank_0_w) // GFXBANK (1P)
AM_RANGE(0xd01500, 0xd01501) AM_WRITE_LEGACY(fromanc2_gfxbank_1_w) // GFXBANK (2P)
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE_LEGACY(fromanc2_eeprom_w) // EEPROM DATA
- AM_RANGE(0xd01800, 0xd01801) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromanc2_eeprom_w) // EEPROM DATA
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -234,15 +223,15 @@ static ADDRESS_MAP_START( fromancr_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP // ?
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd00100, 0xd00123) AM_WRITE_LEGACY(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE_LEGACY(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ_LEGACY(fromanc2_subcpu_r) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP // COIN COUNTER ?
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE_LEGACY(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
- AM_RANGE(0xd01800, 0xd01801) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -253,13 +242,13 @@ static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM // WORK RAM
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd10000, 0xd10001) AM_WRITENOP // ?
AM_RANGE(0xd30000, 0xd30001) AM_WRITENOP // ?
- AM_RANGE(0xd50000, 0xd50001) AM_WRITE_LEGACY(fromanc4_eeprom_w) // EEPROM DATA
+ AM_RANGE(0xd50000, 0xd50001) AM_WRITE(fromanc4_eeprom_w) // EEPROM DATA
- AM_RANGE(0xd70000, 0xd70001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd70000, 0xd70001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_WRITE_LEGACY(fromanc4_videoram_0_w) // VRAM FG (1P/2P)
AM_RANGE(0xd90000, 0xd9ffff) AM_WRITE_LEGACY(fromanc4_videoram_1_w) // VRAM BG (1P/2P)
@@ -268,7 +257,7 @@ static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xdb0000, 0xdb0fff) AM_READWRITE_LEGACY(fromanc4_paletteram_0_r, fromanc4_paletteram_0_w) // PALETTE (1P)
AM_RANGE(0xdc0000, 0xdc0fff) AM_READWRITE_LEGACY(fromanc4_paletteram_1_r, fromanc4_paletteram_1_w) // PALETTE (2P)
- AM_RANGE(0xd10000, 0xd10001) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe00000, 0xe0001d) AM_WRITE_LEGACY(fromanc4_gfxreg_0_w) // SCROLL, GFXBANK (1P/2P)
@@ -292,10 +281,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_sub_io_map, AS_IO, 8, fromanc2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(fromanc2_subcpu_rombank_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(fromanc2_maincpu_r_h, fromanc2_maincpu_w_h) // to/from MAIN CPU
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(fromanc2_subcpu_nmi_clr)
+ AM_RANGE(0x00, 0x00) AM_WRITE(fromanc2_subcpu_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
+ AM_RANGE(0x04, 0x04) AM_READWRITE(fromanc2_maincpu_r_h, fromanc2_maincpu_w_h) // to/from MAIN CPU
+ AM_RANGE(0x06, 0x06) AM_WRITE(fromanc2_subcpu_nmi_clr)
ADDRESS_MAP_END
@@ -309,7 +298,7 @@ static ADDRESS_MAP_START( fromanc2_sound_io_map, AS_IO, 8, fromanc2_state )
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch_r) AM_WRITENOP // snd cmd (1P) / ?
AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch2_r) // snd cmd (2P)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(fromanc2_sndcpu_nmi_clr)
+ AM_RANGE(0x0c, 0x0c) AM_READ(fromanc2_sndcpu_nmi_clr)
ADDRESS_MAP_END