From 00e87e411c7c07f94e01c43cbc6a07e40c7c0619 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Mon, 3 Sep 2018 22:05:38 +0200 Subject: -fidel6502: Addressed some cleanups suggested by hap, nw --- src/mame/drivers/fidel6502.cpp | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp index 094442a5397..54c43da611b 100644 --- a/src/mame/drivers/fidel6502.cpp +++ b/src/mame/drivers/fidel6502.cpp @@ -471,7 +471,6 @@ class fidel6502_state : public fidelbase_state public: fidel6502_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), - m_maincpu(*this, "maincpu"), m_ppi8255(*this, "ppi8255"), m_rombank(*this, "rombank"), m_mainmap(*this, "mainmap"), @@ -483,7 +482,8 @@ public: void rsc(machine_config &config); DECLARE_INPUT_CHANGED_MEMBER(su9_cpu_freq); - void eas(machine_config &config, bool with_ppi_and_nvram = true); + void eas_base(machine_config &config); + void eas(machine_config &config); void eag(machine_config &config); void pc(machine_config &config); void init_eag(); @@ -524,7 +524,6 @@ public: private: // devices/pointers - required_device m_maincpu; optional_device m_ppi8255; optional_memory_bank m_rombank; optional_device m_mainmap; @@ -1914,13 +1913,11 @@ void fidel6502_state::su9(machine_config &config) config.set_default_layout(layout_fidel_su9); } -void fidel6502_state::eas(machine_config &config, bool with_ppi_and_nvram) -{ +MACHINE_CONFIG_START(fidel6502_state::eas_base) /* basic machine hardware */ R65C02(config, m_maincpu, 3_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &fidel6502_state::div_trampoline); - device_t *device; MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel6502_state, irq_on, attotime::from_hz(38.4_kHz_XTAL/64)) // through 4060 IC, 600Hz MCFG_TIMER_START_DELAY(attotime::from_hz(38.4_kHz_XTAL/64) - attotime::from_hz(38.4_kHz_XTAL*2)) // edge! @@ -1929,17 +1926,6 @@ void fidel6502_state::eas(machine_config &config, bool with_ppi_and_nvram) ADDRESS_MAP_BANK(config, m_mainmap).set_map(&fidel6502_state::eas_map).set_options(ENDIANNESS_LITTLE, 8, 16); - if (with_ppi_and_nvram) - { - I8255(config, m_ppi8255); // port B: input, port A & C: output - m_ppi8255->out_pa_callback().set(FUNC(fidel6502_state::eas_ppi_porta_w)); - m_ppi8255->tri_pa_callback().set_constant(0); - m_ppi8255->in_pb_callback().set(FUNC(fidel6502_state::eas_ppi_portb_r)); - m_ppi8255->out_pc_callback().set(FUNC(fidel6502_state::eas_ppi_portc_w)); - - NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - } - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) config.set_default_layout(layout_fidel_eas); @@ -1959,10 +1945,23 @@ void fidel6502_state::eas(machine_config &config, bool with_ppi_and_nvram) cartslot.set_device_load(device_image_load_delegate(&fidelbase_state::device_image_load_scc_cartridge, this)); SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc"); +MACHINE_CONFIG_END + +void fidel6502_state::eas(machine_config &config) +{ + eas_base(config); + + I8255(config, m_ppi8255); // port B: input, port A & C: output + m_ppi8255->out_pa_callback().set(FUNC(fidel6502_state::eas_ppi_porta_w)); + m_ppi8255->tri_pa_callback().set_constant(0); + m_ppi8255->in_pb_callback().set(FUNC(fidel6502_state::eas_ppi_portb_r)); + m_ppi8255->out_pc_callback().set(FUNC(fidel6502_state::eas_ppi_portc_w)); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); } MACHINE_CONFIG_START(fidel6502_state::pc) - eas(config, false); + eas_base(config); /* basic machine hardware */ m_maincpu->set_clock(4_MHz_XTAL); // R65C02P4 -- cgit v1.2.3