diff options
Diffstat (limited to 'src/devices/bus/cpc')
-rw-r--r-- | src/devices/bus/cpc/amdrum.cpp | 12 | ||||
-rw-r--r-- | src/devices/bus/cpc/cpc_rom.cpp | 21 | ||||
-rw-r--r-- | src/devices/bus/cpc/cpc_rom.h | 3 | ||||
-rw-r--r-- | src/devices/bus/cpc/cpcexp.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/cpc/ddi1.cpp | 6 | ||||
-rw-r--r-- | src/devices/bus/cpc/doubler.cpp | 13 | ||||
-rw-r--r-- | src/devices/bus/cpc/hd20.cpp | 11 | ||||
-rw-r--r-- | src/devices/bus/cpc/magicsound.cpp | 16 | ||||
-rw-r--r-- | src/devices/bus/cpc/playcity.cpp | 12 | ||||
-rw-r--r-- | src/devices/bus/cpc/smartwatch.cpp | 13 | ||||
-rw-r--r-- | src/devices/bus/cpc/symbfac2.cpp | 19 |
11 files changed, 60 insertions, 68 deletions
diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp index b0c0610b607..587577edf52 100644 --- a/src/devices/bus/cpc/amdrum.cpp +++ b/src/devices/bus/cpc/amdrum.cpp @@ -20,13 +20,15 @@ DEFINE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device, "cpc_amdrum", "Amdrum") -MACHINE_CONFIG_START(cpc_amdrum_device::device_add_mconfig) +void cpc_amdrum_device::device_add_mconfig(machine_config &config) +{ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) + ZN428E(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); // no pass-through -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/devices/bus/cpc/cpc_rom.cpp b/src/devices/bus/cpc/cpc_rom.cpp index a3fedd575bc..69bd7f80035 100644 --- a/src/devices/bus/cpc/cpc_rom.cpp +++ b/src/devices/bus/cpc/cpc_rom.cpp @@ -18,22 +18,23 @@ void cpc_exp_cards(device_slot_interface &device); //************************************************************************** // device machine config -MACHINE_CONFIG_START(cpc_rom_device::device_add_mconfig) - MCFG_CPC_ROMSLOT_ADD("rom1") - MCFG_CPC_ROMSLOT_ADD("rom2") - MCFG_CPC_ROMSLOT_ADD("rom3") - MCFG_CPC_ROMSLOT_ADD("rom4") - MCFG_CPC_ROMSLOT_ADD("rom5") - MCFG_CPC_ROMSLOT_ADD("rom6") - MCFG_CPC_ROMSLOT_ADD("rom7") - MCFG_CPC_ROMSLOT_ADD("rom8") +void cpc_rom_device::device_add_mconfig(machine_config &config) +{ + CPC_ROMSLOT(config, m_rom[0], 0); + CPC_ROMSLOT(config, m_rom[1], 0); + CPC_ROMSLOT(config, m_rom[2], 0); + CPC_ROMSLOT(config, m_rom[3], 0); + CPC_ROMSLOT(config, m_rom[4], 0); + CPC_ROMSLOT(config, m_rom[5], 0); + CPC_ROMSLOT(config, m_rom[6], 0); + CPC_ROMSLOT(config, m_rom[7], 0); // pass-through cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", DERIVED_CLOCK(1, 1), cpc_exp_cards, nullptr)); exp.irq_callback().set(DEVICE_SELF_OWNER, FUNC(cpc_expansion_slot_device::irq_w)); exp.nmi_callback().set(DEVICE_SELF_OWNER, FUNC(cpc_expansion_slot_device::nmi_w)); exp.romdis_callback().set(DEVICE_SELF_OWNER, FUNC(cpc_expansion_slot_device::romdis_w)); // ROMDIS -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/devices/bus/cpc/cpc_rom.h b/src/devices/bus/cpc/cpc_rom.h index 0128dc79337..67e88cf6137 100644 --- a/src/devices/bus/cpc/cpc_rom.h +++ b/src/devices/bus/cpc/cpc_rom.h @@ -53,9 +53,6 @@ private: DECLARE_DEVICE_TYPE(CPC_ROMSLOT, cpc_rom_image_device) -#define MCFG_CPC_ROMSLOT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, CPC_ROMSLOT, 0) - /*** ROM box device ***/ class cpc_rom_device : public device_t, diff --git a/src/devices/bus/cpc/cpcexp.cpp b/src/devices/bus/cpc/cpcexp.cpp index ab92c31a4df..3f9f04e89ea 100644 --- a/src/devices/bus/cpc/cpcexp.cpp +++ b/src/devices/bus/cpc/cpcexp.cpp @@ -83,7 +83,7 @@ void cpc_expansion_slot_device::device_start() void cpc_expansion_slot_device::device_config_complete() { // for passthrough connectors, use the parent slot's CPU tag - if (strcmp(m_cpu.finder_tag(), finder_base::DUMMY_TAG) == 0 && dynamic_cast<device_cpc_expansion_card_interface *>(owner()) != nullptr) + if ((m_cpu.finder_tag() == finder_base::DUMMY_TAG) && (dynamic_cast<device_cpc_expansion_card_interface *>(owner()) != nullptr)) { auto parent = dynamic_cast<cpc_expansion_slot_device *>(owner()->owner()); if (parent != nullptr) diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp index 0202f9374ae..76e09d36f34 100644 --- a/src/devices/bus/cpc/ddi1.cpp +++ b/src/devices/bus/cpc/ddi1.cpp @@ -116,7 +116,7 @@ WRITE8_MEMBER(cpc_ddi1_device::fdc_w) switch(offset) { case 0x01: - m_fdc->fifo_w(space, 0,data); + m_fdc->fifo_w(data); break; } } @@ -128,10 +128,10 @@ READ8_MEMBER(cpc_ddi1_device::fdc_r) switch(offset) { case 0x00: - data = m_fdc->msr_r(space, 0); + data = m_fdc->msr_r(); break; case 0x01: - data = m_fdc->fifo_r(space, 0); + data = m_fdc->fifo_r(); break; } return data; diff --git a/src/devices/bus/cpc/doubler.cpp b/src/devices/bus/cpc/doubler.cpp index ce89c0819dd..e9ed2e5b5f4 100644 --- a/src/devices/bus/cpc/doubler.cpp +++ b/src/devices/bus/cpc/doubler.cpp @@ -16,14 +16,15 @@ DEFINE_DEVICE_TYPE(CPC_DOUBLER, cpc_doubler_device, "cpc_doubler", "Draysoft Doubler") -MACHINE_CONFIG_START(cpc_doubler_device::device_add_mconfig) - MCFG_CASSETTE_ADD( "doubler_tape" ) - MCFG_CASSETTE_FORMATS(cdt_cassette_formats) - MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED) - MCFG_CASSETTE_INTERFACE("cpc_cass") +void cpc_doubler_device::device_add_mconfig(machine_config &config) +{ + CASSETTE(config, m_tape); + m_tape->set_formats(cdt_cassette_formats); + m_tape->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED); + m_tape->set_interface("cpc_cass"); // no pass-through seen on remake PCBs, unknown if actual hardware had a pass-through port or not -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp index 3ad082ee90d..c13ffca6b4b 100644 --- a/src/devices/bus/cpc/hd20.cpp +++ b/src/devices/bus/cpc/hd20.cpp @@ -15,12 +15,13 @@ DEFINE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device, "cpc_hd20", "Dobbertin HD20") -MACHINE_CONFIG_START(cpc_hd20_device::device_add_mconfig) - MCFG_DEVICE_ADD("hdc",ST11M_HDC,0) - MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, cpc_hd20_device, irq_w)) - MCFG_HARDDISK_ADD("hdc:primary") +void cpc_hd20_device::device_add_mconfig(machine_config &config) +{ + ST11M_HDC(config, m_hdc,0); + m_hdc->irq_handler().set(FUNC(cpc_hd20_device::irq_w)); + HARDDISK(config, "hdc:primary"); // no pass-through (?) -MACHINE_CONFIG_END +} ROM_START( cpc_hd20 ) diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp index f1a940a72c3..1a85915dca1 100644 --- a/src/devices/bus/cpc/magicsound.cpp +++ b/src/devices/bus/cpc/magicsound.cpp @@ -20,7 +20,8 @@ DEFINE_DEVICE_TYPE(AL_MAGICSOUND, al_magicsound_device, "al_magicsound", "Aleste Magic Sound Board") -MACHINE_CONFIG_START(al_magicsound_device::device_add_mconfig) +void al_magicsound_device::device_add_mconfig(machine_config &config) +{ AM9517A(config, m_dmac, DERIVED_CLOCK(1, 1)); // CLK from expansion port // According to the schematics, the TC pin (EOP on western chips) is connected to NMI on the expansion port. // NMIs seem to occur too quickly when this is active, so either EOP is not triggered at the correct time, or @@ -57,11 +58,12 @@ MACHINE_CONFIG_START(al_magicsound_device::device_add_mconfig) m_timer2->set_clk<2>(4000000); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); // no pass-through(?) -MACHINE_CONFIG_END +} //************************************************************************** @@ -113,12 +115,12 @@ void al_magicsound_device::device_reset() READ8_MEMBER(al_magicsound_device::dmac_r) { - return m_dmac->read(space,offset); + return m_dmac->read(offset); } WRITE8_MEMBER(al_magicsound_device::dmac_w) { - m_dmac->write(space,offset,data); + m_dmac->write(offset,data); } WRITE8_MEMBER(al_magicsound_device::timer_w) diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp index f9d225ef7b6..1e6f3b0cfa6 100644 --- a/src/devices/bus/cpc/playcity.cpp +++ b/src/devices/bus/cpc/playcity.cpp @@ -99,32 +99,32 @@ WRITE8_MEMBER(cpc_playcity_device::ctc_w) WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w) { - m_ymz1->address_w(space,offset,data); + m_ymz1->address_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz2_address_w) { - m_ymz2->address_w(space,offset,data); + m_ymz2->address_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz1_data_w) { - m_ymz1->data_w(space,offset,data); + m_ymz1->data_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz2_data_w) { - m_ymz2->data_w(space,offset,data); + m_ymz2->data_w(data); } READ8_MEMBER(cpc_playcity_device::ymz1_data_r) { - return m_ymz1->data_r(space,offset); + return m_ymz1->data_r(); } READ8_MEMBER(cpc_playcity_device::ymz2_data_r) { - return m_ymz2->data_r(space,offset); + return m_ymz2->data_r(); } void cpc_playcity_device::update_ymz_clock() diff --git a/src/devices/bus/cpc/smartwatch.cpp b/src/devices/bus/cpc/smartwatch.cpp index bd039c40735..272b7ca953e 100644 --- a/src/devices/bus/cpc/smartwatch.cpp +++ b/src/devices/bus/cpc/smartwatch.cpp @@ -71,15 +71,18 @@ void cpc_smartwatch_device::device_reset() READ8_MEMBER(cpc_smartwatch_device::rtc_w) { uint8_t* bank = (uint8_t*)m_bank->base(); - if(offset & 1) - m_rtc->read_1(space,0); - else - m_rtc->read_0(space,0); + if (!machine().side_effects_disabled()) + { + if(offset & 1) + m_rtc->read_1(); + else + m_rtc->read_0(); + } return bank[offset & 1]; } READ8_MEMBER(cpc_smartwatch_device::rtc_r) { uint8_t* bank = (uint8_t*)m_bank->base(); - return ((bank[(offset & 1)+4]) & 0xfe) | (m_rtc->read_data(space,0) & 0x01); + return ((bank[(offset & 1)+4]) & 0xfe) | (m_rtc->read_data() & 0x01); } diff --git a/src/devices/bus/cpc/symbfac2.cpp b/src/devices/bus/cpc/symbfac2.cpp index a68ecdbd900..fbdb67f5085 100644 --- a/src/devices/bus/cpc/symbfac2.cpp +++ b/src/devices/bus/cpc/symbfac2.cpp @@ -161,27 +161,12 @@ WRITE8_MEMBER(cpc_symbiface2_device::ide_cs1_w) // #FD14 (read/write) read from or write into selected register READ8_MEMBER(cpc_symbiface2_device::rtc_r) { - switch(offset & 0x01) - { - case 0x00: - return m_rtc->read(space,1); - case 0x01: - return m_rtc->read(space,0); - } - return 0; + return m_rtc->read(~offset & 0x01); } WRITE8_MEMBER(cpc_symbiface2_device::rtc_w) { - switch(offset & 0x01) - { - case 0x00: - m_rtc->write(space,1,data); - break; - case 0x01: - m_rtc->write(space,0,data); - break; - } + m_rtc->write(~offset & 0x01, data); } // PS/2 Mouse connector |