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