diff options
Diffstat (limited to 'src/devices/bus/isa/sblaster.h')
-rw-r--r-- | src/devices/bus/isa/sblaster.h | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/src/devices/bus/isa/sblaster.h b/src/devices/bus/isa/sblaster.h index 1517ef64308..6fe3782fc95 100644 --- a/src/devices/bus/isa/sblaster.h +++ b/src/devices/bus/isa/sblaster.h @@ -8,9 +8,9 @@ #include "isa.h" #include "bus/midi/midi.h" #include "bus/pc_joy/pc_joy.h" -#include "sound/3812intf.h" #include "sound/dac.h" #include "sound/saa1099.h" +#include "sound/ymopl.h" #include "diserial.h" //************************************************************************** @@ -28,16 +28,16 @@ public: void queue_r(uint8_t data); uint8_t dequeue_r(); - DECLARE_READ8_MEMBER(dsp_reset_r); - DECLARE_WRITE8_MEMBER(dsp_reset_w); - DECLARE_READ8_MEMBER(dsp_data_r); - DECLARE_WRITE8_MEMBER(dsp_data_w); - DECLARE_READ8_MEMBER(dsp_rbuf_status_r); - DECLARE_READ8_MEMBER(dsp_wbuf_status_r); - DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w); - DECLARE_WRITE8_MEMBER(dsp_cmd_w); + uint8_t dsp_reset_r(offs_t offset); + void dsp_reset_w(offs_t offset, uint8_t data); + uint8_t dsp_data_r(offs_t offset); + void dsp_data_w(offs_t offset, uint8_t data); + uint8_t dsp_rbuf_status_r(offs_t offset); + uint8_t dsp_wbuf_status_r(offs_t offset); + void dsp_rbuf_status_w(offs_t offset, uint8_t data); + void dsp_cmd_w(offs_t offset, uint8_t data); - DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((uint8_t)state); } + void midi_rx_w(int state) { device_serial_interface::rx_w((uint8_t)state); } protected: void common(machine_config &config); @@ -108,15 +108,15 @@ protected: sb_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + uint8_t dack_r(int line); void dack_w(int line, uint8_t data); - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual void drq16_w(int state) { } virtual void drq_w(int state) { } virtual void irq_w(int state, int source) { } - virtual void mixer_reset() {} + virtual void mixer_reset() { } void adpcm_decode(uint8_t sample, int size); // serial overrides @@ -126,6 +126,8 @@ protected: static constexpr unsigned MIDI_RING_SIZE = 2048; + TIMER_CALLBACK_MEMBER(timer_tick); + required_device<dac_16bit_r2r_device> m_ldac; required_device<dac_16bit_r2r_device> m_rdac; required_device<pc_joy_device> m_joy; @@ -150,14 +152,14 @@ class sb8_device : public sb_device, public device_isa8_card_interface { public: - DECLARE_READ8_MEMBER(ym3812_16_r); - DECLARE_WRITE8_MEMBER(ym3812_16_w); - virtual ioport_constructor device_input_ports() const override; + uint8_t ym3812_16_r(offs_t offset); + void ym3812_16_w(offs_t offset, uint8_t data); + virtual ioport_constructor device_input_ports() const override ATTR_COLD; protected: // construction/destruction sb8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; virtual void drq_w(int state) override; virtual void irq_w(int state, int source) override; virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } @@ -172,16 +174,16 @@ public: // construction/destruction isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(saa1099_16_r); - DECLARE_WRITE8_MEMBER(saa1099_1_16_w); - DECLARE_WRITE8_MEMBER(saa1099_2_16_w); + uint8_t saa1099_16_r(offs_t offset); + void saa1099_1_16_w(offs_t offset, uint8_t data); + void saa1099_2_16_w(offs_t offset, uint8_t data); protected: // device-level overrides - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; // optional information overrides - virtual void device_add_mconfig(machine_config &config) override; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; private: // internal state @@ -197,25 +199,25 @@ public: protected: // device-level overrides - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; // optional information overrides - virtual void device_add_mconfig(machine_config &config) override; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; }; class sb16_device : public sb_device, public device_isa16_card_interface { public: - DECLARE_READ8_MEMBER(mpu401_r); - DECLARE_WRITE8_MEMBER(mpu401_w); - DECLARE_READ8_MEMBER(mixer_r); - DECLARE_WRITE8_MEMBER(mixer_w); - virtual ioport_constructor device_input_ports() const override; + uint8_t mpu401_r(offs_t offset); + void mpu401_w(offs_t offset, uint8_t data); + uint8_t mixer_r(offs_t offset); + void mixer_w(offs_t offset, uint8_t data); + virtual ioport_constructor device_input_ports() const override ATTR_COLD; protected: // construction/destruction sb16_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; virtual uint16_t dack16_r(int line) override; virtual uint8_t dack_r(int line) override { return sb_device::dack_r(line); } virtual void dack_w(int line, uint8_t data) override { sb_device::dack_w(line, data); } @@ -238,10 +240,11 @@ public: protected: // device-level overrides - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; // optional information overrides - virtual void device_add_mconfig(machine_config &config) override; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual void remap(int space_id, offs_t start, offs_t end) override; }; // device type definition |