1 // license:BSD-3-Clause 2 // copyright-holders:David Haywood 3 4 #ifndef MAME_MACHINE_XAVIX_IO_H 5 #define MAME_MACHINE_XAVIX_IO_H 6 7 class xavix_io_device : public device_t 8 { 9 public: 10 xavix_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 11 read_0_callback()12 auto read_0_callback() { return m_in0_cb.bind(); } read_1_callback()13 auto read_1_callback() { return m_in1_cb.bind(); } 14 write_0_callback()15 auto write_0_callback() { return m_out0_cb.bind(); } write_1_callback()16 auto write_1_callback() { return m_out1_cb.bind(); } 17 18 void xav_7a0x_dir_w(offs_t offset, uint8_t data); 19 void xav_7a0x_dat_w(offs_t offset, uint8_t data); 20 21 uint8_t xav_7a0x_dir_r(offs_t offset); 22 uint8_t xav_7a0x_dat_r(offs_t offset); 23 24 protected: 25 // device-level overrides 26 virtual void device_start() override; 27 virtual void device_reset() override; 28 29 private: 30 devcb_read8 m_in0_cb; 31 devcb_read8 m_in1_cb; 32 33 devcb_write8 m_out0_cb; 34 devcb_write8 m_out1_cb; 35 36 uint8_t m_dir[2]; 37 uint8_t m_dat[2]; 38 }; 39 40 DECLARE_DEVICE_TYPE(XAVIXIO, xavix_io_device) 41 42 #endif // MAME_MACHINE_XAVIX_IO_H 43