// license:BSD-3-Clause // copyright-holders:Ryan Holtz /********************************************************************** SGI HAL2 Audio Controller emulation **********************************************************************/ #ifndef MAME_MACHINE_HAL2_H #define MAME_MACHINE_HAL2_H #pragma once #define MCFG_SGI_HAL2_ADD(_tag) \ MCFG_DEVICE_ADD(_tag, SGI_HAL2, 0) class hal2_device : public device_t { public: hal2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); protected: virtual void device_start() override; virtual void device_reset() override; enum { IAR_TYPE = 0xf000, IAR_NUM = 0x0f00, IAR_ACCESS_SEL = 0x0080, IAR_PARAM = 0x000c, IAR_RB_INDEX = 0x0003, }; enum { ISR_TSTATUS = 0x01, ISR_USTATUS = 0x02, ISR_QUAD_MODE = 0x04, ISR_GLOBAL_RESET = 0x08, ISR_CODEC_RESET = 0x10, }; enum { STATUS_REG = 0x0010/4, REVISION_REG = 0x0020/4, INDIRECT_ADDRESS_REG = 0x0030/4, INDIRECT_DATA0_REG = 0x0040/4, INDIRECT_DATA1_REG = 0x0050/4, INDIRECT_DATA2_REG = 0x0060/4, INDIRECT_DATA3_REG = 0x0070/4, }; uint32_t m_iar; uint32_t m_idr[4]; inline void ATTR_PRINTF(3,4) verboselog(int n_level, const char *s_fmt, ... ); }; DECLARE_DEVICE_TYPE(SGI_HAL2, hal2_device) #endif // MAME_MACHINE_HAL2_H