summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/spg110.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/spg110.h')
-rw-r--r--src/devices/machine/spg110.h42
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)