From 3d979742864d2eadbf1a2421b2cd9305cc2143cd Mon Sep 17 00:00:00 2001 From: Nigel Barnes Date: Wed, 17 Sep 2025 22:53:28 +0100 Subject: bus/archimedes/econet: Moved classes into anonymous namespace. --- src/devices/bus/archimedes/econet/econet.cpp | 77 ++++++++-------- src/devices/bus/archimedes/econet/econet.h | 46 +--------- src/devices/bus/archimedes/econet/midi.cpp | 123 +++++++++++++++----------- src/devices/bus/archimedes/econet/midi.h | 65 +------------- src/devices/bus/archimedes/econet/rtfmjoy.cpp | 95 +++++++++----------- src/devices/bus/archimedes/econet/rtfmjoy.h | 41 +-------- src/devices/bus/archimedes/econet/slot.cpp | 8 +- src/devices/bus/archimedes/econet/slot.h | 2 +- 8 files changed, 163 insertions(+), 294 deletions(-) diff --git a/src/devices/bus/archimedes/econet/econet.cpp b/src/devices/bus/archimedes/econet/econet.cpp index e469b9f581d..0c32c7e8861 100644 --- a/src/devices/bus/archimedes/econet/econet.cpp +++ b/src/devices/bus/archimedes/econet/econet.cpp @@ -8,15 +8,46 @@ #include "emu.h" #include "econet.h" + #include "bus/econet/econet.h" +#include "machine/mc6854.h" + + +namespace { + +// ======================> arc_econet_adf10_device + +class arc_econet_device : public device_t, public device_archimedes_econet_interface +{ +public: + // construction/destruction + arc_econet_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, ARC_ECONET, tag, owner, clock) + , device_archimedes_econet_interface(mconfig, *this) + , m_adlc(*this, "mc6854") + { + } + +protected: + // device_t overrides + virtual void device_start() override ATTR_COLD { } + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual u8 read(offs_t offset) override + { + return m_adlc->read(offset); + } -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** + virtual void write(offs_t offset, u8 data) override + { + m_adlc->write(offset, data); + } -DEFINE_DEVICE_TYPE(ARC_ECONET, arc_econet_device, "arc_econet", "Acorn ADF10/AEH52 Econet Module"); +private: + required_device m_adlc; +}; //------------------------------------------------- @@ -37,41 +68,7 @@ void arc_econet_device::device_add_mconfig(machine_config &config) ECONET_SLOT(config, "econet254", "econet", econet_devices); } +} // anonymous namespace -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// archimedes_econet_device - constructor -//------------------------------------------------- - -arc_econet_device::arc_econet_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, ARC_ECONET, tag, owner, clock) - , device_archimedes_econet_interface(mconfig, *this) - , m_adlc(*this, "mc6854") -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void arc_econet_device::device_start() -{ -} -//************************************************************************** -// IMPLEMENTATION -//************************************************************************** - -u8 arc_econet_device::read(offs_t offset) -{ - return m_adlc->read(offset); -} - -void arc_econet_device::write(offs_t offset, u8 data) -{ - m_adlc->write(offset, data); -} +DEFINE_DEVICE_TYPE_PRIVATE(ARC_ECONET, device_archimedes_econet_interface, arc_econet_device, "arc_econet", "Acorn ADF10/AEH52 Econet Module"); diff --git a/src/devices/bus/archimedes/econet/econet.h b/src/devices/bus/archimedes/econet/econet.h index a43967264ba..1d33f19e64d 100644 --- a/src/devices/bus/archimedes/econet/econet.h +++ b/src/devices/bus/archimedes/econet/econet.h @@ -1,55 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Nigel Barnes -/********************************************************************** - - Acorn Archimedes Econet Module - -**********************************************************************/ - - #ifndef MAME_BUS_ARCHIMEDES_ECONET_ECONET_H #define MAME_BUS_ARCHIMEDES_ECONET_ECONET_H #pragma once - #include "slot.h" -#include "machine/mc6854.h" - - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> arc_econet_adf10_device - -class arc_econet_device: - public device_t, - public device_archimedes_econet_interface -{ -public: - // construction/destruction - arc_econet_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual void device_start() override ATTR_COLD; - - // optional information overrides - virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; - - virtual u8 read(offs_t offset) override; - virtual void write(offs_t offset, u8 data) override; - -private: - required_device m_adlc; -}; - - -// device type definition -DECLARE_DEVICE_TYPE(ARC_ECONET, arc_econet_device); +DECLARE_DEVICE_TYPE(ARC_ECONET, device_archimedes_econet_interface); -#endif /* MAME_BUS_ARCHIMEDES_ECONET_ECONET_H */ +#endif // MAME_BUS_ARCHIMEDES_ECONET_ECONET_H diff --git a/src/devices/bus/archimedes/econet/midi.cpp b/src/devices/bus/archimedes/econet/midi.cpp index f6d3cc5c39b..3c60373c1f9 100644 --- a/src/devices/bus/archimedes/econet/midi.cpp +++ b/src/devices/bus/archimedes/econet/midi.cpp @@ -17,15 +17,76 @@ #include "emu.h" #include "midi.h" + #include "bus/midi/midi.h" +#include "machine/mc6854.h" + +#include "speaker.h" + + +namespace { + +// ======================> arc_serial_midi_device + +class arc_serial_midi_device : public device_t, public device_archimedes_econet_interface +{ +public: + // construction/destruction + arc_serial_midi_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : arc_serial_midi_device(mconfig, ARC_SERIAL_MIDI, tag, owner, clock) + { + } + +protected: + arc_serial_midi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, type, tag, owner, clock) + , device_archimedes_econet_interface(mconfig, *this) + , m_adlc(*this, "mc6854") + { + } + + // device_t overrides + virtual void device_start() override ATTR_COLD { } + + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + + virtual u8 read(offs_t offset) override + { + return m_adlc->read(offset); + } + virtual void write(offs_t offset, u8 data) override + { + m_adlc->write(offset, data); + } -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** +private: + required_device m_adlc; +}; -DEFINE_DEVICE_TYPE(ARC_SERIAL_MIDI, arc_serial_midi_device, "arc_serial_midi", "The Serial Port MIDI Interface"); -DEFINE_DEVICE_TYPE(ARC_SERIAL_SAMPLER, arc_serial_sampler_device, "arc_serial_sampler", "The Serial Port Sampler and MIDI Interface"); + +// ======================> arc_serial_sampler_device + +class arc_serial_sampler_device: public arc_serial_midi_device +{ +public: + // construction/destruction + arc_serial_sampler_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : arc_serial_midi_device(mconfig, ARC_SERIAL_SAMPLER, tag, owner, clock) + , m_mic(*this, "mic") + { + } + + static constexpr feature_type unemulated_features() { return feature::CAPTURE; } + +protected: + // optional information overrides + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + +private: + required_device m_mic; +}; //------------------------------------------------- @@ -47,54 +108,14 @@ void arc_serial_sampler_device::device_add_mconfig(machine_config &config) { arc_serial_midi_device::device_add_mconfig(config); - // ZN439E -} - + MICROPHONE(config, m_mic, 1).front_center(); + //m_mic->add_route(0, "adc", 1.0); -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// arc_serial_midi_device - constructor -//------------------------------------------------- - -arc_serial_midi_device::arc_serial_midi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, type, tag, owner, clock) - , device_archimedes_econet_interface(mconfig, *this) - , m_adlc(*this, "mc6854") -{ -} - -arc_serial_midi_device::arc_serial_midi_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : arc_serial_midi_device(mconfig, ARC_SERIAL_MIDI, tag, owner, clock) -{ -} - -arc_serial_sampler_device::arc_serial_sampler_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : arc_serial_midi_device(mconfig, ARC_SERIAL_SAMPLER, tag, owner, clock) -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void arc_serial_midi_device::device_start() -{ + // ZN439E } -//************************************************************************** -// IMPLEMENTATION -//************************************************************************** +} // anonymous namespace -u8 arc_serial_midi_device::read(offs_t offset) -{ - return m_adlc->read(offset); -} -void arc_serial_midi_device::write(offs_t offset, u8 data) -{ - m_adlc->write(offset, data); -} +DEFINE_DEVICE_TYPE_PRIVATE(ARC_SERIAL_MIDI, device_archimedes_econet_interface, arc_serial_midi_device, "arc_serial_midi", "The Serial Port MIDI Interface"); +DEFINE_DEVICE_TYPE_PRIVATE(ARC_SERIAL_SAMPLER, device_archimedes_econet_interface, arc_serial_sampler_device, "arc_serial_sampler", "The Serial Port Sampler and MIDI Interface"); diff --git a/src/devices/bus/archimedes/econet/midi.h b/src/devices/bus/archimedes/econet/midi.h index da078f91d6a..9a3ce9d866e 100644 --- a/src/devices/bus/archimedes/econet/midi.h +++ b/src/devices/bus/archimedes/econet/midi.h @@ -1,73 +1,14 @@ // license:BSD-3-Clause // copyright-holders:Nigel Barnes -/********************************************************************** - - The Serial Port MIDI Interface - -**********************************************************************/ - - #ifndef MAME_BUS_ARCHIMEDES_ECONET_MIDI_H #define MAME_BUS_ARCHIMEDES_ECONET_MIDI_H #pragma once - #include "slot.h" -#include "machine/mc6854.h" - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> arc_serial_midi_device - -class arc_serial_midi_device: - public device_t, - public device_archimedes_econet_interface -{ -public: - // construction/destruction - arc_serial_midi_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - arc_serial_midi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); - - // device-level overrides - virtual void device_start() override ATTR_COLD; - - // optional information overrides - virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; - - virtual u8 read(offs_t offset) override; - virtual void write(offs_t offset, u8 data) override; - -private: - required_device m_adlc; -}; - - -// ======================> arc_serial_sampler_device - -class arc_serial_sampler_device: public arc_serial_midi_device -{ -public: - // construction/destruction - arc_serial_sampler_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - - static constexpr feature_type unemulated_features() { return feature::CAPTURE; } - -protected: - // optional information overrides - virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; -}; - - -// device type definition -DECLARE_DEVICE_TYPE(ARC_SERIAL_MIDI, arc_serial_midi_device); -DECLARE_DEVICE_TYPE(ARC_SERIAL_SAMPLER, arc_serial_sampler_device); +DECLARE_DEVICE_TYPE(ARC_SERIAL_MIDI, device_archimedes_econet_interface); +DECLARE_DEVICE_TYPE(ARC_SERIAL_SAMPLER, device_archimedes_econet_interface); -#endif /* MAME_BUS_ARCHIMEDES_ECONET_MIDI_H */ +#endif // MAME_BUS_ARCHIMEDES_ECONET_MIDI_H diff --git a/src/devices/bus/archimedes/econet/rtfmjoy.cpp b/src/devices/bus/archimedes/econet/rtfmjoy.cpp index c53e7c155da..5144a0aa1c4 100644 --- a/src/devices/bus/archimedes/econet/rtfmjoy.cpp +++ b/src/devices/bus/archimedes/econet/rtfmjoy.cpp @@ -10,15 +10,50 @@ #include "rtfmjoy.h" -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** +namespace { -DEFINE_DEVICE_TYPE(ARC_RTFM_JOY, arc_rtfm_joystick_device, "arc_rtfmjoy", "Acorn Archimedes RTFM Joystick Interface"); +class arc_rtfm_joystick_device : public device_t, public device_archimedes_econet_interface +{ +public: + // construction/destruction + arc_rtfm_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : device_t(mconfig, ARC_RTFM_JOY, tag, owner, clock) + , device_archimedes_econet_interface(mconfig, *this) + , m_joy(*this, "JOY%u", 0U) + { + } + +protected: + // device_t overrides + virtual void device_start() override ATTR_COLD { } + + // optional information overrides + virtual ioport_constructor device_input_ports() const override ATTR_COLD; + + virtual u8 read(offs_t offset) override + { + u8 data = 0xff; + + switch (offset & 0x03) + { + case 0x01: + data = ~m_joy[0]->read() & 0x1f; + break; + case 0x02: + data = ~m_joy[1]->read() & 0x1f; + break; + } + + return data; + } + +private: + required_ioport_array<2> m_joy; +}; //------------------------------------------------- -// INPUT_PORTS( rtfm_joystick ) +// input_ports - device-specific input ports //------------------------------------------------- static INPUT_PORTS_START( rtfm_joystick ) @@ -37,58 +72,12 @@ static INPUT_PORTS_START( rtfm_joystick ) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Fire") PORT_PLAYER(2) INPUT_PORTS_END - -//------------------------------------------------- -// input_ports - device-specific input ports -//------------------------------------------------- - ioport_constructor arc_rtfm_joystick_device::device_input_ports() const { return INPUT_PORTS_NAME( rtfm_joystick ); } +} // anonymous namespace -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// archimedes_rtfm_joystick_device - constructor -//------------------------------------------------- -arc_rtfm_joystick_device::arc_rtfm_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, ARC_RTFM_JOY, tag, owner, clock) - , device_archimedes_econet_interface(mconfig, *this) - , m_joy(*this, "JOY%u", 0U) -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void arc_rtfm_joystick_device::device_start() -{ -} - -//************************************************************************** -// IMPLEMENTATION -//************************************************************************** - -u8 arc_rtfm_joystick_device::read(offs_t offset) -{ - u8 data = 0xff; - - switch (offset & 0x03) - { - case 0x01: - data = ~m_joy[0]->read() & 0x1f; - break; - case 0x02: - data = ~m_joy[1]->read() & 0x1f; - break; - } - - return data; -} +DEFINE_DEVICE_TYPE_PRIVATE(ARC_RTFM_JOY, device_archimedes_econet_interface, arc_rtfm_joystick_device, "arc_rtfmjoy", "Acorn Archimedes RTFM Joystick Interface"); diff --git a/src/devices/bus/archimedes/econet/rtfmjoy.h b/src/devices/bus/archimedes/econet/rtfmjoy.h index 63319512464..f5f38cd899a 100644 --- a/src/devices/bus/archimedes/econet/rtfmjoy.h +++ b/src/devices/bus/archimedes/econet/rtfmjoy.h @@ -1,50 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Nigel Barnes -/********************************************************************** - - Acorn Archimedes RTFM Joystick Interface - -**********************************************************************/ - - #ifndef MAME_BUS_ARCHIMEDES_ECONET_RTFMJOY_H #define MAME_BUS_ARCHIMEDES_ECONET_RTFMJOY_H #pragma once - #include "slot.h" +DECLARE_DEVICE_TYPE(ARC_RTFM_JOY, device_archimedes_econet_interface); -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class arc_rtfm_joystick_device: - public device_t, - public device_archimedes_econet_interface -{ -public: - // construction/destruction - arc_rtfm_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual void device_start() override ATTR_COLD; - - // optional information overrides - virtual ioport_constructor device_input_ports() const override ATTR_COLD; - - virtual u8 read(offs_t offset) override; - -private: - required_ioport_array<2> m_joy; -}; - - -// device type definition -DECLARE_DEVICE_TYPE(ARC_RTFM_JOY, arc_rtfm_joystick_device); - - -#endif /* MAME_BUS_ARCHIMEDES_ECONET_RTFMJOY_H */ +#endif // MAME_BUS_ARCHIMEDES_ECONET_RTFMJOY_H diff --git a/src/devices/bus/archimedes/econet/slot.cpp b/src/devices/bus/archimedes/econet/slot.cpp index c6417eeb268..6a4642c2ff0 100644 --- a/src/devices/bus/archimedes/econet/slot.cpp +++ b/src/devices/bus/archimedes/econet/slot.cpp @@ -19,17 +19,17 @@ DEFINE_DEVICE_TYPE(ARCHIMEDES_ECONET_SLOT, archimedes_econet_slot_device, "archi //************************************************************************** -// DEVICE BBC_MODEM PORT INTERFACE +// DEVICE ARCHIMEDES_ECONET PORT INTERFACE //************************************************************************** //------------------------------------------------- // device_archimedes_econet_interface - constructor //------------------------------------------------- -device_archimedes_econet_interface::device_archimedes_econet_interface(const machine_config &mconfig, device_t &device) : - device_interface(device, "arceconet") +device_archimedes_econet_interface::device_archimedes_econet_interface(const machine_config &mconfig, device_t &device) + : device_interface(device, "arceconet") + , m_slot(dynamic_cast(device.owner())) { - m_slot = dynamic_cast(device.owner()); } diff --git a/src/devices/bus/archimedes/econet/slot.h b/src/devices/bus/archimedes/econet/slot.h index bd6353f45e9..10bf92b31af 100644 --- a/src/devices/bus/archimedes/econet/slot.h +++ b/src/devices/bus/archimedes/econet/slot.h @@ -89,7 +89,7 @@ public: protected: device_archimedes_econet_interface(const machine_config &mconfig, device_t &device); - archimedes_econet_slot_device *m_slot; + archimedes_econet_slot_device *const m_slot; }; -- cgit v1.2.3