From feb4b0ddf0df4c62574f56723b6b617eb8cd951f Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 31 Oct 2024 22:29:07 -0400 Subject: a2bus: Cleanups - Eliminate A2BUS_7M_CLOCK constant except in apple2e.cpp driver. Use DERIVED_CLOCK for almost all clocks formerly generated from this value. - Don't default the 7M clock for the bus slots. Add confirmed or at least sensible-looking clocks (some differing from Apple's) to all configurations. - Convert some more macros to constexpr variables and eliminate one tag macro. --- src/devices/bus/a2bus/a2bus.h | 20 ++++------- src/devices/bus/a2bus/byte8251.cpp | 2 +- src/devices/bus/a2bus/pc_xporter.cpp | 16 ++++++--- src/devices/bus/a2bus/transwarp.cpp | 69 ++++++++++++++++++++++++++++-------- src/devices/bus/a2bus/transwarp.h | 48 +------------------------ src/mame/agat/agat.cpp | 22 ++++++------ src/mame/apple/apple2.cpp | 16 ++++----- src/mame/apple/apple2e.cpp | 30 ++++++++-------- src/mame/apple/apple2gs.cpp | 14 ++++---- src/mame/apple/apple3.cpp | 8 ++--- src/mame/concept/concept.cpp | 8 ++--- 11 files changed, 124 insertions(+), 129 deletions(-) diff --git a/src/devices/bus/a2bus/a2bus.h b/src/devices/bus/a2bus/a2bus.h index 733b6b14240..037b4f2b175 100644 --- a/src/devices/bus/a2bus/a2bus.h +++ b/src/devices/bus/a2bus/a2bus.h @@ -17,16 +17,13 @@ // /INH special addresses -#define INH_START_INVALID 0xffff -#define INH_END_INVALID 0x0000 +static constexpr uint16_t INH_START_INVALID = 0xffff; +static constexpr uint16_t INH_END_INVALID = 0x0000; // /INH types -#define INH_NONE 0x00 -#define INH_READ 0x01 -#define INH_WRITE 0x02 - -// 7M = XTAL(14'318'181) / 2 or XTAL(28'636'363) / 4 (for IIgs) -static constexpr uint32_t A2BUS_7M_CLOCK = 7159090; +static constexpr int INH_NONE = 0x00; +static constexpr int INH_READ = 0x01; +static constexpr int INH_WRITE = 0x02; //************************************************************************** // TYPE DEFINITIONS @@ -40,11 +37,6 @@ class a2bus_slot_device : public device_t, public device_single_card_slot_interf public: // construction/destruction template - a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&a2bus_tag, U &&opts, const char *dflt) - : a2bus_slot_device(mconfig, tag, owner, A2BUS_7M_CLOCK, std::forward(a2bus_tag), std::forward(opts), dflt) - { - } - template a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&a2bus_tag, U &&opts, const char *dflt) : a2bus_slot_device(mconfig, tag, owner, clock) { @@ -54,7 +46,7 @@ public: set_fixed(false); m_a2bus.set_tag(std::forward(a2bus_tag)); } - a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = A2BUS_7M_CLOCK); + a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: a2bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/bus/a2bus/byte8251.cpp b/src/devices/bus/a2bus/byte8251.cpp index 333fbb67d6c..fef5f19c0ac 100644 --- a/src/devices/bus/a2bus/byte8251.cpp +++ b/src/devices/bus/a2bus/byte8251.cpp @@ -134,7 +134,7 @@ void a2bus_byte8251_device::device_add_mconfig(machine_config &config) I8251(config, m_usart, 1021800); // CLK tied to ϕ1 signal from bus pin 38 m_usart->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); - MM5307AA(config, m_brg, A2BUS_7M_CLOCK / 8); + MM5307AA(config, m_brg, DERIVED_CLOCK(1, 8)); m_brg->output_cb().set(m_usart, FUNC(i8251_device::write_txc)); m_brg->output_cb().append(m_usart, FUNC(i8251_device::write_rxc)); diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp index 73c401d942a..7f6856ebd67 100644 --- a/src/devices/bus/a2bus/pc_xporter.cpp +++ b/src/devices/bus/a2bus/pc_xporter.cpp @@ -117,6 +117,7 @@ protected: virtual void device_start() override ATTR_COLD; virtual void device_reset() override ATTR_COLD; virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual void device_resolve_objects() override ATTR_COLD; // overrides of standard a2bus slot functions virtual uint8_t read_c0nx(uint8_t offset) override; @@ -218,21 +219,18 @@ void a2bus_pcxporter_device::pc_io(address_map &map) void a2bus_pcxporter_device::device_add_mconfig(machine_config &config) { - V30(config, m_v30, A2BUS_7M_CLOCK); // 7.16 MHz as per manual + V30(config, m_v30, DERIVED_CLOCK(1, 1)); // 7.16 MHz as per manual m_v30->set_addrmap(AS_PROGRAM, &a2bus_pcxporter_device::pc_map); m_v30->set_addrmap(AS_IO, &a2bus_pcxporter_device::pc_io); m_v30->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); m_v30->set_disable(); PIT8253(config, m_pit8253); - m_pit8253->set_clk<0>(A2BUS_7M_CLOCK / 6.0); // heartbeat IRQ m_pit8253->out_handler<0>().set(m_pic8259, FUNC(pic8259_device::ir0_w)); - m_pit8253->set_clk<1>(A2BUS_7M_CLOCK / 6.0); // DRAM refresh m_pit8253->out_handler<1>().set(FUNC(a2bus_pcxporter_device::pc_pit8253_out1_changed)); - m_pit8253->set_clk<2>(A2BUS_7M_CLOCK / 6.0); // PIO port C pin 4, and speaker polling enough m_pit8253->out_handler<2>().set(FUNC(a2bus_pcxporter_device::pc_pit8253_out2_changed)); - PCXPORT_DMAC(config, m_dma8237, A2BUS_7M_CLOCK / 2); + PCXPORT_DMAC(config, m_dma8237, DERIVED_CLOCK(1, 2)); m_dma8237->out_hreq_callback().set(FUNC(a2bus_pcxporter_device::pc_dma_hrq_changed)); m_dma8237->out_eop_callback().set(FUNC(a2bus_pcxporter_device::pc_dma8237_out_eop)); m_dma8237->in_memr_callback().set(FUNC(a2bus_pcxporter_device::pc_dma_read_byte)); @@ -277,6 +275,14 @@ void a2bus_pcxporter_device::device_add_mconfig(machine_config &config) ISA8_SLOT(config, "isa2", 0, m_isabus, pc_isa8_cards, "fdc_xt", true); } +void a2bus_pcxporter_device::device_resolve_objects() +{ + // DERIVED_CLOCK doesn't work for this case, so do this here instead + m_pit8253->set_clk<0>(clock() / 6.0); // heartbeat IRQ + m_pit8253->set_clk<1>(clock() / 6.0); // DRAM refresh + m_pit8253->set_clk<2>(clock() / 6.0); // PIO port C pin 4, and speaker polling enough +} + //************************************************************************** // LIVE DEVICE //************************************************************************** diff --git a/src/devices/bus/a2bus/transwarp.cpp b/src/devices/bus/a2bus/transwarp.cpp index a87f724a704..da737f84e2f 100644 --- a/src/devices/bus/a2bus/transwarp.cpp +++ b/src/devices/bus/a2bus/transwarp.cpp @@ -24,17 +24,58 @@ #include "cpu/m6502/m6502.h" #include "cpu/m6502/m65c02.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_TRANSWARP, a2bus_transwarp_device, "a2twarp", "Applied Engineering TransWarp") +class a2bus_transwarp_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_transwarp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_transwarp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + // overrides of device_t functions + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual ioport_constructor device_input_ports() const override ATTR_COLD; + virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD; + + // overrides of standard a2bus slot functions + virtual bool take_c800() override; + +private: + bool m_bEnabled; + bool m_bReadA2ROM; + bool m_bIn1MHzMode; + emu_timer *m_timer; + + required_device m_ourcpu; + required_region_ptr m_rom; + required_ioport m_dsw1, m_dsw2; + + TIMER_CALLBACK_MEMBER(clock_adjust_tick); + + uint8_t dma_r(offs_t offset); + void dma_w(offs_t offset, uint8_t data); + + void m65c02_mem(address_map &map) ATTR_COLD; + + void hit_slot(int slot); + void hit_slot_joy(); +}; + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** -#define CPU_TAG "tw65c02" +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_TRANSWARP, device_a2bus_card_interface, a2bus_transwarp_device, "a2twarp", "Applied Engineering TransWarp") void a2bus_transwarp_device::m65c02_mem(address_map &map) { @@ -128,7 +169,7 @@ ioport_constructor a2bus_transwarp_device::device_input_ports() const void a2bus_transwarp_device::device_add_mconfig(machine_config &config) { - M65C02(config, m_ourcpu, A2BUS_7M_CLOCK / 2); + M65C02(config, m_ourcpu, DERIVED_CLOCK(1, 2)); m_ourcpu->set_addrmap(AS_PROGRAM, &a2bus_transwarp_device::m65c02_mem); } @@ -140,7 +181,7 @@ a2bus_transwarp_device::a2bus_transwarp_device(const machine_config &mconfig, de device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_bEnabled(false), - m_ourcpu(*this, CPU_TAG), + m_ourcpu(*this, "tw65c02"), m_rom(*this, "twrom"), m_dsw1(*this, "DSW1"), m_dsw2(*this, "DSW2") @@ -174,11 +215,11 @@ void a2bus_transwarp_device::device_reset() { if (m_dsw1->read() & 0x80) { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 4); + m_ourcpu->set_unscaled_clock(clock() / 4); } else { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 2); + m_ourcpu->set_unscaled_clock(clock() / 2); } } else @@ -199,11 +240,11 @@ TIMER_CALLBACK_MEMBER(a2bus_transwarp_device::clock_adjust_tick) { if (m_dsw1->read() & 0x80) { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 4); + m_ourcpu->set_unscaled_clock(clock() / 4); } else { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 2); + m_ourcpu->set_unscaled_clock(clock() / 2); } } } @@ -255,11 +296,11 @@ void a2bus_transwarp_device::dma_w(offs_t offset, uint8_t data) { if (m_dsw1->read() & 0x80) { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 4); + m_ourcpu->set_unscaled_clock(clock() / 4); } else { - m_ourcpu->set_unscaled_clock(A2BUS_7M_CLOCK / 2); + m_ourcpu->set_unscaled_clock(clock() / 2); } m_bIn1MHzMode = false; } diff --git a/src/devices/bus/a2bus/transwarp.h b/src/devices/bus/a2bus/transwarp.h index a8a8b7601bb..369d3a277de 100644 --- a/src/devices/bus/a2bus/transwarp.h +++ b/src/devices/bus/a2bus/transwarp.h @@ -13,53 +13,7 @@ #include "a2bus.h" -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class a2bus_transwarp_device: - public device_t, - public device_a2bus_card_interface -{ -public: - // construction/destruction - a2bus_transwarp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - a2bus_transwarp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - - // overrides of device_t functions - virtual void device_start() override ATTR_COLD; - virtual void device_reset() override ATTR_COLD; - virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; - virtual ioport_constructor device_input_ports() const override ATTR_COLD; - virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD; - - // overrides of standard a2bus slot functions - virtual bool take_c800() override; - -private: - bool m_bEnabled; - bool m_bReadA2ROM; - bool m_bIn1MHzMode; - emu_timer *m_timer; - - required_device m_ourcpu; - required_region_ptr m_rom; - required_ioport m_dsw1, m_dsw2; - - TIMER_CALLBACK_MEMBER(clock_adjust_tick); - - uint8_t dma_r(offs_t offset); - void dma_w(offs_t offset, uint8_t data); - - void m65c02_mem(address_map &map) ATTR_COLD; - - void hit_slot(int slot); - void hit_slot_joy(); -}; - // device type definition -DECLARE_DEVICE_TYPE(A2BUS_TRANSWARP, a2bus_transwarp_device) +DECLARE_DEVICE_TYPE(A2BUS_TRANSWARP, device_a2bus_card_interface) #endif // MAME_BUS_A2BUS_TRANSWARP_H diff --git a/src/mame/agat/agat.cpp b/src/mame/agat/agat.cpp index 6f841862723..1d085c74ce5 100644 --- a/src/mame/agat/agat.cpp +++ b/src/mame/agat/agat.cpp @@ -1264,11 +1264,11 @@ void agat7_state::agat7(machine_config &config) m_a2bus->nmi_w().set(FUNC(agat_base_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(agat_base_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); - A2BUS_SLOT(config, "sl2", m_a2bus, agat7_cards, "a7lang"); - A2BUS_SLOT(config, "sl3", m_a2bus, agat7_cards, "a7fdc"); - A2BUS_SLOT(config, "sl4", m_a2bus, agat7_cards, "a7ports"); - A2BUS_SLOT(config, "sl5", m_a2bus, agat7_cards, nullptr); - A2BUS_SLOT(config, "sl6", m_a2bus, agat7_cards, "a7ram"); + A2BUS_SLOT(config, "sl2", XTAL(14'300'000) / 2, m_a2bus, agat7_cards, "a7lang"); + A2BUS_SLOT(config, "sl3", XTAL(14'300'000) / 2, m_a2bus, agat7_cards, "a7fdc"); + A2BUS_SLOT(config, "sl4", XTAL(14'300'000) / 2, m_a2bus, agat7_cards, "a7ports"); + A2BUS_SLOT(config, "sl5", XTAL(14'300'000) / 2, m_a2bus, agat7_cards, nullptr); + A2BUS_SLOT(config, "sl6", XTAL(14'300'000) / 2, m_a2bus, agat7_cards, "a7ram"); CASSETTE(config,m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED); @@ -1306,12 +1306,12 @@ void agat9_state::agat9(machine_config &config) m_a2bus->inh_w().set(FUNC(agat_base_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); // slot 0 does not exist - A2BUS_SLOT(config, "sl1", m_a2bus, agat9_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, agat9_cards, nullptr); // a9ram - A2BUS_SLOT(config, "sl3", m_a2bus, agat9_cards, nullptr); // printer->mouse - A2BUS_SLOT(config, "sl4", m_a2bus, agat9_cards, nullptr); // printer - A2BUS_SLOT(config, "sl5", m_a2bus, agat9_cards, "a9fdc"); - A2BUS_SLOT(config, "sl6", m_a2bus, agat9_cards, "a9fdc140"); + A2BUS_SLOT(config, "sl1", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, nullptr); + A2BUS_SLOT(config, "sl2", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, nullptr); // a9ram + A2BUS_SLOT(config, "sl3", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, nullptr); // printer->mouse + A2BUS_SLOT(config, "sl4", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, nullptr); // printer + A2BUS_SLOT(config, "sl5", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, "a9fdc"); + A2BUS_SLOT(config, "sl6", XTAL(14'300'000) / 2, m_a2bus, agat9_cards, "a9fdc140"); CASSETTE(config,m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED); diff --git a/src/mame/apple/apple2.cpp b/src/mame/apple/apple2.cpp index 4e7118735c7..1a27f2087f2 100644 --- a/src/mame/apple/apple2.cpp +++ b/src/mame/apple/apple2.cpp @@ -1183,14 +1183,14 @@ void apple2_state::apple2_common(machine_config &config) m_a2bus->nmi_w().set(FUNC(apple2_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(apple2_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); - A2BUS_SLOT(config, "sl0", m_a2bus, apple2_slot0_cards, "lang"); - A2BUS_SLOT(config, "sl1", m_a2bus, apple2_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, apple2_cards, nullptr); - A2BUS_SLOT(config, "sl3", m_a2bus, apple2_cards, nullptr); - A2BUS_SLOT(config, "sl4", m_a2bus, apple2_cards, "mockingboard"); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2_cards, nullptr); - A2BUS_SLOT(config, "sl6", m_a2bus, apple2_cards, "diskiing"); - A2BUS_SLOT(config, "sl7", m_a2bus, apple2_cards, nullptr); + A2BUS_SLOT(config, "sl0", XTAL(14'318'181) / 2, m_a2bus, apple2_slot0_cards, "lang"); + A2BUS_SLOT(config, "sl1", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, nullptr); + A2BUS_SLOT(config, "sl2", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, nullptr); + A2BUS_SLOT(config, "sl3", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, nullptr); + A2BUS_SLOT(config, "sl4", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, "mockingboard"); + A2BUS_SLOT(config, "sl5", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, nullptr); + A2BUS_SLOT(config, "sl6", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, "diskiing"); + A2BUS_SLOT(config, "sl7", XTAL(14'318'181) / 2, m_a2bus, apple2_cards, nullptr); /* Set up the softlists: clean cracks priority, originals second, others last */ SOFTWARE_LIST(config, "flop_a2_clean").set_original("apple2_flop_clcracked"); diff --git a/src/mame/apple/apple2e.cpp b/src/mame/apple/apple2e.cpp index 1cd357e7d12..b452c3d1b72 100644 --- a/src/mame/apple/apple2e.cpp +++ b/src/mame/apple/apple2e.cpp @@ -190,6 +190,8 @@ static constexpr int IRQ_SLOT = 0; static constexpr int IRQ_VBL = 1; static constexpr int IRQ_MOUSEXY = 2; +static constexpr XTAL A2BUS_7M_CLOCK = XTAL(14'318'181) / 2; + class apple2e_state : public driver_device { public: @@ -2139,13 +2141,13 @@ void apple2e_state::laser_calc_speed() break; case 2: - m_accel_speed = A2BUS_7M_CLOCK/3; // 2.38 MHz + m_accel_speed = A2BUS_7M_CLOCK.value()/3; // 2.38 MHz m_accel_fast = true; accel_full_speed(); break; case 3: - m_accel_speed = A2BUS_7M_CLOCK/2; // 3.58 MHz + m_accel_speed = A2BUS_7M_CLOCK.value()/2; // 3.58 MHz m_accel_fast = true; accel_full_speed(); break; @@ -5043,13 +5045,13 @@ void apple2e_state::apple2e_common(machine_config &config, bool enhanced, bool r m_a2bus->nmi_w().set(FUNC(apple2e_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(apple2e_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); - A2BUS_SLOT(config, "sl1", m_a2bus, apple2e_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, apple2e_cards, nullptr); - A2BUS_SLOT(config, "sl3", m_a2bus, apple2e_cards, nullptr); - A2BUS_SLOT(config, "sl4", m_a2bus, apple2e_cards, "mockingboard"); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2e_cards, nullptr); - A2BUS_SLOT(config, "sl6", m_a2bus, apple2e_cards, "diskiing"); - A2BUS_SLOT(config, "sl7", m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl1", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl2", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl3", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl4", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, "mockingboard"); + A2BUS_SLOT(config, "sl5", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl6", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, "diskiing"); + A2BUS_SLOT(config, "sl7", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); A2EAUXSLOT(config, m_a2eauxslot, 0); m_a2eauxslot->set_space(m_maincpu, AS_PROGRAM); @@ -5254,9 +5256,9 @@ void apple2e_state::laser128(machine_config &config) A2BUS_LASER128(config, "sl2", A2BUS_7M_CLOCK).set_onboard(m_a2bus); A2BUS_LASER128(config, "sl3", A2BUS_7M_CLOCK).set_onboard(m_a2bus); A2BUS_LASER128(config, "sl4", A2BUS_7M_CLOCK).set_onboard(m_a2bus); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl5", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); A2BUS_LASER128(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus); - A2BUS_SLOT(config, "sl7", m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl7", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); CENTRONICS(config, m_printer_conn, centronics_devices, "printer"); m_printer_conn->busy_handler().set(FUNC(apple2e_state::busy_w)); @@ -5289,9 +5291,9 @@ void apple2e_state::laser128o(machine_config &config) A2BUS_LASER128_ORIG(config, "sl2", A2BUS_7M_CLOCK).set_onboard(m_a2bus); A2BUS_LASER128_ORIG(config, "sl3", A2BUS_7M_CLOCK).set_onboard(m_a2bus); A2BUS_LASER128_ORIG(config, "sl4", A2BUS_7M_CLOCK).set_onboard(m_a2bus); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl5", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); A2BUS_LASER128_ORIG(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus); - A2BUS_SLOT(config, "sl7", m_a2bus, apple2e_cards, nullptr); + A2BUS_SLOT(config, "sl7", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, nullptr); CENTRONICS(config, m_printer_conn, centronics_devices, "printer"); m_printer_conn->busy_handler().set(FUNC(apple2e_state::busy_w)); @@ -5400,7 +5402,7 @@ void apple2e_state::ace2200(machine_config &config) config.device_remove("sl6"); A2BUS_ACE2X00_SLOT1(config, "sl1", A2BUS_7M_CLOCK).set_onboard(m_a2bus); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2e_cards, "mockingboard"); + A2BUS_SLOT(config, "sl5", A2BUS_7M_CLOCK, m_a2bus, apple2e_cards, "mockingboard"); A2BUS_ACE2X00_SLOT6(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus); config.device_remove("aux"); diff --git a/src/mame/apple/apple2gs.cpp b/src/mame/apple/apple2gs.cpp index 50a72bc001e..f22e1552c14 100644 --- a/src/mame/apple/apple2gs.cpp +++ b/src/mame/apple/apple2gs.cpp @@ -3860,13 +3860,13 @@ void apple2gs_state::apple2gs(machine_config &config) m_a2bus->nmi_w().set(FUNC(apple2gs_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(apple2gs_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); - A2BUS_SLOT(config, "sl1", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl3", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl4", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl5", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl6", m_a2bus, apple2gs_cards, nullptr); - A2BUS_SLOT(config, "sl7", m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl1", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl2", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl3", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl4", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl5", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl6", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); + A2BUS_SLOT(config, "sl7", A2GS_7M, m_a2bus, apple2gs_cards, nullptr); IWM(config, m_iwm, A2GS_7M, A2GS_MASTER_CLOCK/14); m_iwm->phases_cb().set(FUNC(apple2gs_state::phases_w)); diff --git a/src/mame/apple/apple3.cpp b/src/mame/apple/apple3.cpp index bea2116fef8..35e501d6a22 100644 --- a/src/mame/apple/apple3.cpp +++ b/src/mame/apple/apple3.cpp @@ -86,10 +86,10 @@ void apple3_state::apple3(machine_config &config) m_a2bus->nmi_w().set(FUNC(apple3_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(apple3_state::a2bus_inh_w)); m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); - A2BUS_SLOT(config, "sl1", m_a2bus, apple3_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, apple3_cards, nullptr); - A2BUS_SLOT(config, "sl3", m_a2bus, apple3_cards, nullptr); - A2BUS_SLOT(config, "sl4", m_a2bus, apple3_cards, nullptr); + A2BUS_SLOT(config, "sl1", 14.318181_MHz_XTAL / 2, m_a2bus, apple3_cards, nullptr); + A2BUS_SLOT(config, "sl2", 14.318181_MHz_XTAL / 2, m_a2bus, apple3_cards, nullptr); + A2BUS_SLOT(config, "sl3", 14.318181_MHz_XTAL / 2, m_a2bus, apple3_cards, nullptr); + A2BUS_SLOT(config, "sl4", 14.318181_MHz_XTAL / 2, m_a2bus, apple3_cards, nullptr); /* fdc */ APPLEIII_FDC(config, m_fdc, 1021800*2); diff --git a/src/mame/concept/concept.cpp b/src/mame/concept/concept.cpp index 81030ee5833..99e0a8a6e11 100644 --- a/src/mame/concept/concept.cpp +++ b/src/mame/concept/concept.cpp @@ -170,10 +170,10 @@ void concept_state::corvus_concept(machine_config &config) A2BUS(config, m_a2bus, 0).set_space(m_maincpu, AS_PROGRAM); m_a2bus->nmi_w().set("iocint", FUNC(input_merger_device::in_w<0>)); m_a2bus->irq_w().set("iocint", FUNC(input_merger_device::in_w<1>)); - A2BUS_SLOT(config, "sl1", m_a2bus, concept_a2_cards, nullptr); - A2BUS_SLOT(config, "sl2", m_a2bus, concept_a2_cards, nullptr); - A2BUS_SLOT(config, "sl3", m_a2bus, concept_a2_cards, nullptr); - A2BUS_SLOT(config, "sl4", m_a2bus, concept_a2_cards, "fdc01"); + A2BUS_SLOT(config, "sl1", 16.364_MHz_XTAL / 2, m_a2bus, concept_a2_cards, nullptr); + A2BUS_SLOT(config, "sl2", 16.364_MHz_XTAL / 2, m_a2bus, concept_a2_cards, nullptr); + A2BUS_SLOT(config, "sl3", 16.364_MHz_XTAL / 2, m_a2bus, concept_a2_cards, nullptr); + A2BUS_SLOT(config, "sl4", 16.364_MHz_XTAL / 2, m_a2bus, concept_a2_cards, "fdc01"); INPUT_MERGER_ANY_HIGH(config, "iocint").output_handler().set_inputline(m_maincpu, M68K_IRQ_1); -- cgit v1.2.3