diff options
Diffstat (limited to 'src/devices/machine/spg110.h')
-rw-r--r-- | src/devices/machine/spg110.h | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/src/devices/machine/spg110.h b/src/devices/machine/spg110.h index df32eea96e0..abee2dd286a 100644 --- a/src/devices/machine/spg110.h +++ b/src/devices/machine/spg110.h @@ -38,17 +38,16 @@ public: auto chip_select() { return m_chip_sel.bind(); } uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return m_spg_video->screen_update(screen,bitmap,cliprect); } - DECLARE_WRITE_LINE_MEMBER(vblank) { m_spg_video->vblank(state); } + void vblank(int state) { m_spg_video->vblank(state); } protected: spg110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal); - void internal_map(address_map &map); + void internal_map(address_map &map) ATTR_COLD; - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_reset() override ATTR_COLD; - virtual void device_add_mconfig(machine_config &config) override; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; private: required_device<screen_device> m_screen; @@ -57,8 +56,8 @@ private: required_device<spg110_video_device> m_spg_video; required_device<spg110_audio_device> m_spg_audio; - DECLARE_READ16_MEMBER(space_r); - DECLARE_WRITE_LINE_MEMBER(audioirq_w); + uint16_t space_r(offs_t offset); + void audioirq_w(int state); devcb_write16 m_porta_out; devcb_write16 m_portb_out; @@ -67,22 +66,29 @@ private: devcb_read16 m_portb_in; devcb_read16 m_portc_in; - devcb_read16 m_adc_in[2]; + devcb_read16::array<4> m_adc_in; devcb_write8 m_chip_sel; - DECLARE_READ16_MEMBER(porta_r) { return m_porta_in(); } - DECLARE_READ16_MEMBER(portb_r) { return m_portb_in(); } - DECLARE_READ16_MEMBER(portc_r) { return m_portc_in(); } - DECLARE_WRITE16_MEMBER(porta_w) { m_porta_out(offset, data, mem_mask); } - DECLARE_WRITE16_MEMBER(portb_w) { m_portb_out(offset, data, mem_mask); } - DECLARE_WRITE16_MEMBER(portc_w) { m_portc_out(offset, data, mem_mask); } - template <size_t Line> DECLARE_READ16_MEMBER(adc_r) { return m_adc_in[Line](); } - DECLARE_WRITE8_MEMBER(cs_w) { m_chip_sel(offset, data, mem_mask); } - DECLARE_READ16_MEMBER(get_pal_r) { return 0; /*m_pal_flag;*/ } + uint16_t porta_r() { return m_porta_in(); } + uint16_t portb_r() { return m_portb_in(); } + uint16_t portc_r() { return m_portc_in(); } + void porta_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) { m_porta_out(offset, data, mem_mask); } + void portb_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) { m_portb_out(offset, data, mem_mask); } + void portc_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) { m_portc_out(offset, data, mem_mask); } + + void timerirq_w(int state); + void uartirq_w(int state); + void extirq_w(int state); + void ffreq1_w(int state); + void ffreq2_w(int state); + + template <size_t Line> uint16_t adc_r() { return m_adc_in[Line](); } + void cs_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0) { m_chip_sel(offset, data, mem_mask); } + uint16_t get_pal_r() { return 0; /*m_pal_flag;*/ } void configure_spg_io(spg2xx_io_device* io); - DECLARE_WRITE_LINE_MEMBER(videoirq_w); + void videoirq_w(int state); }; DECLARE_DEVICE_TYPE(SPG110, spg110_device) |