diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2021-01-12 13:29:34 -0500 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2021-01-12 13:29:34 -0500 |
commit | e325adaed353897bdc9f8083447dfb82d7160ac2 (patch) | |
tree | ead3515a0d7baaa762f96935b400e34f10c14a43 /src/mame/drivers | |
parent | ae0bb17dc3f0adcfc775fd8d13d268823e91b203 (diff) |
roland_s10.cpp, roland_s50.cpp: Add skeleton sampler devices
Diffstat (limited to 'src/mame/drivers')
-rw-r--r-- | src/mame/drivers/roland_s10.cpp | 12 | ||||
-rw-r--r-- | src/mame/drivers/roland_s50.cpp | 27 |
2 files changed, 25 insertions, 14 deletions
diff --git a/src/mame/drivers/roland_s10.cpp b/src/mame/drivers/roland_s10.cpp index 7c198ac45b5..072aef20fa6 100644 --- a/src/mame/drivers/roland_s10.cpp +++ b/src/mame/drivers/roland_s10.cpp @@ -12,6 +12,7 @@ #include "emu.h" #include "audio/bu3905.h" +#include "audio/sa16.h" //#include "bus/midi/midi.h" #include "cpu/mcs51/mcs51.h" #include "machine/i8251.h" @@ -33,6 +34,7 @@ public: , m_io(*this, "io") , m_usart(*this, "usart") , m_lcdc(*this, "lcdc") + , m_sampler(*this, "sampler") { } @@ -60,6 +62,7 @@ protected: required_device<mb62h195_device> m_io; required_device<i8251_device> m_usart; required_device<hd44780_device> m_lcdc; + required_device<sa16_base_device> m_sampler; }; class roland_s220_state : public roland_s10_state @@ -168,7 +171,7 @@ void roland_s10_state::mks100_ext_map(address_map &map) map(0x9000, 0x90ff).mirror(0xf00).w(FUNC(roland_s10_state::led_data_w)); map(0xa000, 0xa0ff).mirror(0xf00).rw(FUNC(roland_s10_state::sw_scan_r), FUNC(roland_s10_state::sw_scan_w)); map(0xc000, 0xc000).mirror(0xfff).w(FUNC(roland_s10_state::led_latch_w)); - //map(0xe000, 0xffff).rw("wave", FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)); + map(0xe000, 0xffff).rw(m_sampler, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)); } void roland_s10_state::s10_ext_map(address_map &map) @@ -188,7 +191,7 @@ void roland_s220_state::s220_ext_map(address_map &map) map(0x9000, 0x90ff).mirror(0xf00).w(FUNC(roland_s220_state::vca_cv_w)); map(0xa000, 0xa0ff).mirror(0xf00).rw(FUNC(roland_s220_state::sw_scan_r), FUNC(roland_s220_state::sw_scan_w)); map(0xc000, 0xc000).mirror(0xfff).w(FUNC(roland_s220_state::led_latch2_w)); - //map(0xe000, 0xffff).rw("wave", FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)); + map(0xe000, 0xffff).rw(m_sampler, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)); } @@ -247,7 +250,8 @@ void roland_s10_state::s10(machine_config &config) UPD7001(config, "adc", RES_K(27), CAP_P(47)); - //RF5C36(config, "wave", 26.88_MHz_XTAL); + RF5C36(config, m_sampler, 26.88_MHz_XTAL); + m_sampler->int_callback().set_inputline(m_maincpu, MCS51_INT1_LINE); } void roland_s10_state::mks100(machine_config &config) @@ -283,6 +287,8 @@ void roland_s220_state::s220(machine_config &config) m_lcdc->set_pixel_update_cb(FUNC(roland_s220_state::lcd_pixel_update)); BU3905(config, m_outctrl); + + m_sampler->sh_callback().set(m_outctrl, FUNC(bu3905_device::axi_w)); } diff --git a/src/mame/drivers/roland_s50.cpp b/src/mame/drivers/roland_s50.cpp index 2ca7500c2e2..d05f54b332b 100644 --- a/src/mame/drivers/roland_s50.cpp +++ b/src/mame/drivers/roland_s50.cpp @@ -8,6 +8,7 @@ #include "emu.h" #include "audio/bu3905.h" +#include "audio/sa16.h" //#include "bus/midi/midi.h" #include "cpu/mcs96/i8x9x.h" #include "imagedev/floppy.h" @@ -31,6 +32,7 @@ public: , m_fdc(*this, "fdc") , m_floppy(*this, "fdc:0") , m_vdp(*this, "vdp") + , m_wave(*this, "wave") , m_keyscan(*this, "keyscan") { } @@ -64,7 +66,7 @@ protected: required_device<wd_fdc_digital_device_base> m_fdc; required_device<floppy_connector> m_floppy; optional_device<tms3556_device> m_vdp; - //required_device<sa16_device> m_wave; + required_device<sa16_base_device> m_wave; optional_device<mb63h149_device> m_keyscan; }; @@ -213,7 +215,7 @@ void roland_s50_state::io_map(address_map &map) map(0x1200, 0x1200).r(m_vdp, FUNC(tms3556_device::vram_r)); map(0x1202, 0x1202).rw(m_vdp, FUNC(tms3556_device::initptr_r), FUNC(tms3556_device::vram_w)); map(0x1204, 0x1204).rw(m_vdp, FUNC(tms3556_device::reg_r), FUNC(tms3556_device::reg_w)); - //map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00); + map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)).umask16(0xff00); map(0x4000, 0x4fff).mirror(0x3000).rw(FUNC(roland_s50_state::key_r), FUNC(roland_s50_state::key_w)); } @@ -238,7 +240,7 @@ void roland_s550_state::io_map(address_map &map) map(0x2000, 0x2000).w(FUNC(roland_s550_state::sram_bank_w)); map(0x2800, 0x281f).w("outas", FUNC(bu3905_device::write)).umask16(0x00ff); //map(0x3800, 0x381f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff); - //map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00); + map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c36_device::read), FUNC(rf5c36_device::write)).umask16(0xff00); } void roland_w30_state::w30_mem_map(address_map &map) @@ -255,7 +257,7 @@ void roland_w30_state::w30_mem_map(address_map &map) map(0xe400, 0xe403).rw("lcd", FUNC(lm24014h_device::read), FUNC(lm24014h_device::write)).umask16(0x00ff); //map(0xe800, 0xe83f).w("output", FUNC(upd65006gf_376_3b8_device::write)).umask16(0x00ff); //map(0xf000, 0xf01f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff); - //map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00); + map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00); } #ifdef UNUSED_DEFINITION @@ -265,7 +267,7 @@ void roland_w30_state::s330_mem_map(address_map &map) map(0x2000, 0x3fff).rom().region("program", 0x2000); map(0x4000, 0x7fff).ram().share("common"); map(0x8000, 0xbfff).m(m_psram[1], FUNC(address_map_bank_device::amap16)); - //map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00); + map(0xc000, 0xffff).rw(m_wave, FUNC(sa16_device::read), FUNC(sa16_device::write)).umask16(0xff00); } #endif @@ -368,8 +370,8 @@ void roland_s50_state::s50(machine_config &config) TIMER(config, "vdp_timer").configure_scanline(FUNC(roland_s50_state::vdp_timer), "screen", 0, 1); - //RF5C16(config, m_wave, 26.88_MHz_XTAL); - //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); + RF5C36(config, m_wave, 26.88_MHz_XTAL); + m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); } void roland_s550_state::s550(machine_config &config) @@ -396,6 +398,8 @@ void roland_s550_state::s550(machine_config &config) BU3905(config, "outas"); //MB654419U(config, m_tvf, 20_MHz_XTAL); + + m_wave->sh_callback().set("outas", FUNC(bu3905_device::axi_w)); } void roland_w30_state::w30(machine_config &config) @@ -429,8 +433,8 @@ void roland_w30_state::w30(machine_config &config) LM24014H(config, "lcd"); // LCD unit: LM240142 - //R15229874(config, m_wave, 26.88_MHz_XTAL); - //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); + SA16(config, m_wave, 26.88_MHz_XTAL); + m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); //UPD65006GF_376_3B8(config, "output", 26.88_MHz_XTAL); @@ -480,8 +484,9 @@ void roland_w30_state::s330(machine_config &config) TIMER(config, "vdp_timer").configure_scanline(FUNC(roland_w30_state::vdp_timer), "screen", 0, 1); - //R15229874(config, m_wave, 26.88_MHz_XTAL); - //m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); + SA16(config, m_wave, 26.88_MHz_XTAL); + m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE); + m_wave->sh_callback().set("outas", FUNC(bu3905_device::axi_w)); BU3905(config, "outas"); |