From fbdf07c69f8d59a9569d196a3e85a090d4b4ab17 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sun, 16 Mar 2014 10:32:02 +0000 Subject: [PATCH] redo amstrad expansion slot devcb usage (nw) --- src/mess/drivers/amstrad.c | 4 ++-- src/mess/includes/amstrad.h | 10 +++------- src/mess/machine/amstrad.c | 28 +++++++--------------------- src/mess/machine/cpc_rom.c | 8 ++++---- src/mess/machine/cpc_ssa1.c | 8 ++++---- src/mess/machine/mface2.c | 8 ++++---- 6 files changed, 24 insertions(+), 42 deletions(-) diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c index d792949136b..65e4b0fb914 100644 --- a/src/mess/drivers/amstrad.c +++ b/src/mess/drivers/amstrad.c @@ -844,8 +844,8 @@ CPC_EXPANSION_INTERFACE(cpc_exp_intf) DEVCB_CPU_INPUT_LINE("maincpu", 0), DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_NMI), DEVCB_NULL, // RESET - DEVCB_LINE(cpc_romdis), // ROMDIS - DEVCB_LINE(cpc_romen) // /ROMEN + DEVCB_DRIVER_LINE_MEMBER(amstrad_state, cpc_romdis), // ROMDIS + DEVCB_DRIVER_LINE_MEMBER(amstrad_state, cpc_romen) // /ROMEN }; static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot ) diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h index d64e61d49ac..8c984a1a84c 100644 --- a/src/mess/includes/amstrad.h +++ b/src/mess/includes/amstrad.h @@ -234,6 +234,9 @@ public: DECLARE_READ8_MEMBER(amstrad_ppi_portb_r); DECLARE_WRITE8_MEMBER(amstrad_ppi_portc_w); + DECLARE_WRITE_LINE_MEMBER( cpc_romdis ); + DECLARE_WRITE_LINE_MEMBER( cpc_romen ); + void aleste_interrupt(bool state); DECLARE_FLOPPY_FORMATS( floppy_formats ); @@ -320,13 +323,6 @@ protected: /*----------- defined in machine/amstrad.c -----------*/ - -WRITE_LINE_DEVICE_HANDLER( cpc_irq_w ); -WRITE_LINE_DEVICE_HANDLER( cpc_nmi_w ); -WRITE_LINE_DEVICE_HANDLER( cpc_romdis ); -WRITE_LINE_DEVICE_HANDLER( cpc_romen ); - - extern const mc6845_interface amstrad_mc6845_intf; extern const mc6845_interface amstrad_plus_mc6845_intf; diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c index 00937f37878..c4674bb49a9 100644 --- a/src/mess/machine/amstrad.c +++ b/src/mess/machine/amstrad.c @@ -1142,33 +1142,19 @@ static device_t* get_expansion_device(running_machine &machine, const char* tag) return NULL; } -WRITE_LINE_DEVICE_HANDLER(cpc_irq_w) +WRITE_LINE_MEMBER(amstrad_state::cpc_romdis) { - device->machine().device("maincpu")->execute().set_input_line(0, state); + m_gate_array.romdis = state; + amstrad_rethinkMemory(); } -WRITE_LINE_DEVICE_HANDLER(cpc_nmi_w) +WRITE_LINE_MEMBER(amstrad_state::cpc_romen) { - device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, state); -} - -WRITE_LINE_DEVICE_HANDLER(cpc_romdis) -{ - amstrad_state *tstate = device->machine().driver_data(); - - tstate->m_gate_array.romdis = state; - tstate->amstrad_rethinkMemory(); -} - -WRITE_LINE_DEVICE_HANDLER(cpc_romen) -{ - amstrad_state *tstate = device->machine().driver_data(); - if(state != 0) - tstate->m_gate_array.mrer &= ~0x04; + m_gate_array.mrer &= ~0x04; else - tstate->m_gate_array.mrer |= 0x04; - tstate->amstrad_rethinkMemory(); + m_gate_array.mrer |= 0x04; + amstrad_rethinkMemory(); } diff --git a/src/mess/machine/cpc_rom.c b/src/mess/machine/cpc_rom.c index f11b774ab90..f671314b347 100644 --- a/src/mess/machine/cpc_rom.c +++ b/src/mess/machine/cpc_rom.c @@ -17,11 +17,11 @@ const device_type CPC_ROM = &device_creator; CPC_EXPANSION_INTERFACE(sub_exp_intf) { - DEVCB_LINE(cpc_irq_w), - DEVCB_LINE(cpc_nmi_w),//LINE_MEMBER(cpc_expansion_slot_device,nmi_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, irq_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, nmi_w), DEVCB_NULL, // RESET - DEVCB_LINE(cpc_romdis), // ROMDIS - DEVCB_LINE(cpc_romen) // /ROMEN + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romdis_w), // ROMDIS + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romen_w) // /ROMEN }; // device machine config diff --git a/src/mess/machine/cpc_ssa1.c b/src/mess/machine/cpc_ssa1.c index 0e02b0643aa..7e855493c66 100644 --- a/src/mess/machine/cpc_ssa1.c +++ b/src/mess/machine/cpc_ssa1.c @@ -19,11 +19,11 @@ const device_type CPC_DKSPEECH = &device_creator; CPC_EXPANSION_INTERFACE(sub_exp_intf) { - DEVCB_LINE(cpc_irq_w), - DEVCB_LINE(cpc_nmi_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, irq_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, nmi_w), DEVCB_NULL, // RESET - DEVCB_LINE(cpc_romdis), // ROMDIS - DEVCB_LINE(cpc_romen) // /ROMEN + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romdis_w), // ROMDIS + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romen_w) // /ROMEN }; //------------------------------------------------- diff --git a/src/mess/machine/mface2.c b/src/mess/machine/mface2.c index badbf251c0c..9ee9006037f 100644 --- a/src/mess/machine/mface2.c +++ b/src/mess/machine/mface2.c @@ -16,11 +16,11 @@ const device_type CPC_MFACE2 = &device_creator; CPC_EXPANSION_INTERFACE(sub_exp_intf) { - DEVCB_LINE(cpc_irq_w), - DEVCB_LINE(cpc_nmi_w),//LINE_MEMBER(cpc_expansion_slot_device,nmi_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, irq_w), + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, nmi_w), DEVCB_NULL, // RESET - DEVCB_LINE(cpc_romdis), // ROMDIS - DEVCB_LINE(cpc_romen) // /ROMEN + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romdis_w), // ROMDIS + DEVCB_DEVICE_LINE_MEMBER("^^", cpc_expansion_slot_device, romen_w) // /ROMEN }; // device machine config