diff options
Diffstat (limited to 'src/devices/bus/a2bus/a2sam.cpp')
-rw-r--r-- | src/devices/bus/a2bus/a2sam.cpp | 77 |
1 files changed, 35 insertions, 42 deletions
diff --git a/src/devices/bus/a2bus/a2sam.cpp b/src/devices/bus/a2bus/a2sam.cpp index 16b8b5affe8..3fad0c34fff 100644 --- a/src/devices/bus/a2bus/a2sam.cpp +++ b/src/devices/bus/a2bus/a2sam.cpp @@ -10,22 +10,42 @@ #include "emu.h" #include "a2sam.h" -#include "sound/volt_reg.h" + +#include "sound/dac.h" + #include "speaker.h" -/*************************************************************************** - PARAMETERS -***************************************************************************/ + +namespace { //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_SAM, a2bus_sam_device, "a2sam", "Don't Ask Software S.A.M.") - -/*************************************************************************** - FUNCTION PROTOTYPES -***************************************************************************/ +class a2bus_sam_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_sam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, A2BUS_SAM, tag, owner, clock), + device_a2bus_card_interface(mconfig, *this), + m_dac(*this, "dac") + { + } + +protected: + virtual void device_start() override { } + virtual void device_reset() override { } + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + + // overrides of standard a2bus slot functions + virtual void write_c0nx(uint8_t offset, uint8_t data) override { m_dac->write(data); } + virtual bool take_c800() override { return false; } + + required_device<dac_byte_interface> m_dac; +}; //------------------------------------------------- // device_add_mconfig - add device configuration @@ -35,40 +55,13 @@ void a2bus_sam_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "speaker").front_center(); 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); } -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -a2bus_sam_device::a2bus_sam_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, A2BUS_SAM, tag, owner, clock), - device_a2bus_card_interface(mconfig, *this), - m_dac(*this, "dac") -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void a2bus_sam_device::device_start() -{ -} +} // anonymous namespace -void a2bus_sam_device::device_reset() -{ -} -void a2bus_sam_device::write_c0nx(uint8_t offset, uint8_t data) -{ - m_dac->write(data); -} +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** -bool a2bus_sam_device::take_c800() -{ - return false; -} +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_SAM, device_a2bus_card_interface, a2bus_sam_device, "a2sam", "Don't Ask Software S.A.M.") |