1 // license: BSD-3-Clause 2 // copyright-holders: Dirk Best 3 /*************************************************************************** 4 5 SAMDAC Stereo DAC for SAM Coupe 6 7 ***************************************************************************/ 8 9 #ifndef MAME_BUS_CENTRONICS_SAMDAC_H 10 #define MAME_BUS_CENTRONICS_SAMDAC_H 11 12 #pragma once 13 14 #include "ctronics.h" 15 #include "sound/dac.h" 16 17 18 //************************************************************************** 19 // TYPE DEFINITIONS 20 //************************************************************************** 21 22 // ======================> centronics_samdac_device 23 24 class centronics_samdac_device : public device_t, public device_centronics_peripheral_interface 25 { 26 public: 27 // construction/destruction 28 centronics_samdac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 29 30 // from centronics port 31 virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override; DECLARE_WRITE_LINE_MEMBER(input_data0)32 virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { update_data(0, state); } DECLARE_WRITE_LINE_MEMBER(input_data1)33 virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { update_data(1, state); } DECLARE_WRITE_LINE_MEMBER(input_data2)34 virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { update_data(2, state); } DECLARE_WRITE_LINE_MEMBER(input_data3)35 virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) override { update_data(3, state); } DECLARE_WRITE_LINE_MEMBER(input_data4)36 virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) override { update_data(4, state); } DECLARE_WRITE_LINE_MEMBER(input_data5)37 virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) override { update_data(5, state); } DECLARE_WRITE_LINE_MEMBER(input_data6)38 virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) override { update_data(6, state); } DECLARE_WRITE_LINE_MEMBER(input_data7)39 virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { update_data(7, state); } 40 41 protected: 42 virtual void device_add_mconfig(machine_config &config) override; 43 virtual void device_start() override; 44 45 private: 46 void update_data(int bit, int state); 47 48 required_device_array<dac_byte_interface, 2> m_dac; 49 50 int m_strobe; 51 uint8_t m_data[2]; 52 }; 53 54 // device type definition 55 DECLARE_DEVICE_TYPE(CENTRONICS_SAMDAC, centronics_samdac_device) 56 57 #endif // MAME_BUS_CENTRONICS_SAMDAC_H 58