diff options
author | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 22:44:58 +0100 |
---|---|---|
committer | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 22:44:58 +0100 |
commit | c24473ddff715ecec2e258a6eb38960cf8c8e98e (patch) | |
tree | 8ea44b6396a6129913c0aac13859b5de9965e972 /src/devices/bus/msx_cart | |
parent | 009cba4fb8102102168ef32870892438327f3705 (diff) | |
parent | 598cd5227223c3b04ca31f0dbc1981256d9ea3ff (diff) |
conflict resolution (nw)
Diffstat (limited to 'src/devices/bus/msx_cart')
47 files changed, 477 insertions, 352 deletions
diff --git a/src/devices/bus/msx_cart/arc.cpp b/src/devices/bus/msx_cart/arc.cpp index 3504071ec4c..406ec8f4de3 100644 --- a/src/devices/bus/msx_cart/arc.cpp +++ b/src/devices/bus/msx_cart/arc.cpp @@ -18,9 +18,8 @@ msx_cart_arc_device::msx_cart_arc_device(const machine_config &mconfig, const ch void msx_cart_arc_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0x7f, 0x7f, write8_delegate(FUNC(msx_cart_arc_device::io_7f_w), this)); - space.install_read_handler(0x7f, 0x7f, read8_delegate(FUNC(msx_cart_arc_device::io_7f_r), this)); + io_space().install_write_handler(0x7f, 0x7f, write8smo_delegate(FUNC(msx_cart_arc_device::io_7f_w), this)); + io_space().install_read_handler(0x7f, 0x7f, read8smo_delegate(FUNC(msx_cart_arc_device::io_7f_r), this)); } @@ -39,7 +38,7 @@ void msx_cart_arc_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_arc_device::read_cart) +uint8_t msx_cart_arc_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -49,7 +48,7 @@ READ8_MEMBER(msx_cart_arc_device::read_cart) } -WRITE8_MEMBER(msx_cart_arc_device::io_7f_w) +void msx_cart_arc_device::io_7f_w(uint8_t data) { if (data == 0x35) { @@ -58,7 +57,7 @@ WRITE8_MEMBER(msx_cart_arc_device::io_7f_w) } -READ8_MEMBER(msx_cart_arc_device::io_7f_r) +uint8_t msx_cart_arc_device::io_7f_r() { return ((m_7f & 0x03) == 0x03) ? 0xda : 0xff; } diff --git a/src/devices/bus/msx_cart/arc.h b/src/devices/bus/msx_cart/arc.h index 308589961fd..69f4427a01f 100644 --- a/src/devices/bus/msx_cart/arc.h +++ b/src/devices/bus/msx_cart/arc.h @@ -18,10 +18,7 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - - DECLARE_WRITE8_MEMBER(io_7f_w); - DECLARE_READ8_MEMBER(io_7f_r); + virtual uint8_t read_cart(offs_t offset) override; protected: // device-level overrides @@ -29,6 +26,9 @@ protected: virtual void device_reset() override; private: + void io_7f_w(uint8_t data); + uint8_t io_7f_r(); + uint8_t m_7f; }; diff --git a/src/devices/bus/msx_cart/ascii.cpp b/src/devices/bus/msx_cart/ascii.cpp index c7598a8ccc0..7d1b354b404 100644 --- a/src/devices/bus/msx_cart/ascii.cpp +++ b/src/devices/bus/msx_cart/ascii.cpp @@ -27,8 +27,12 @@ msx_cart_ascii8_device::msx_cart_ascii8_device(const machine_config &mconfig, co void msx_cart_ascii8_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8_device::restore_banks), this)); +void msx_cart_ascii8_device::device_post_load() +{ + restore_banks(); } @@ -72,7 +76,7 @@ void msx_cart_ascii8_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii8_device::read_cart) +uint8_t msx_cart_ascii8_device::read_cart(offs_t offset) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -82,7 +86,7 @@ READ8_MEMBER(msx_cart_ascii8_device::read_cart) } -WRITE8_MEMBER(msx_cart_ascii8_device::write_cart) +void msx_cart_ascii8_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x6000 && offset < 0x8000) { @@ -111,8 +115,12 @@ msx_cart_ascii16_device::msx_cart_ascii16_device(const machine_config &mconfig, void msx_cart_ascii16_device::device_start() { save_item(NAME(m_selected_bank)); +} - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16_device::restore_banks), this)); + +void msx_cart_ascii16_device::device_post_load() +{ + restore_banks(); } @@ -156,7 +164,7 @@ void msx_cart_ascii16_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii16_device::read_cart) +uint8_t msx_cart_ascii16_device::read_cart(offs_t offset) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -166,7 +174,7 @@ READ8_MEMBER(msx_cart_ascii16_device::read_cart) } -WRITE8_MEMBER(msx_cart_ascii16_device::write_cart) +void msx_cart_ascii16_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x6000 && offset < 0x6800) { @@ -202,8 +210,12 @@ msx_cart_ascii8_sram_device::msx_cart_ascii8_sram_device(const machine_config &m void msx_cart_ascii8_sram_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii8_sram_device::restore_banks), this)); +void msx_cart_ascii8_sram_device::device_post_load() +{ + restore_banks(); } @@ -272,7 +284,7 @@ void msx_cart_ascii8_sram_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii8_sram_device::read_cart) +uint8_t msx_cart_ascii8_sram_device::read_cart(offs_t offset) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -287,7 +299,7 @@ READ8_MEMBER(msx_cart_ascii8_sram_device::read_cart) } -WRITE8_MEMBER(msx_cart_ascii8_sram_device::write_cart) +void msx_cart_ascii8_sram_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x6000 && offset < 0x8000) { @@ -327,8 +339,12 @@ msx_cart_ascii16_sram_device::msx_cart_ascii16_sram_device(const machine_config void msx_cart_ascii16_sram_device::device_start() { save_item(NAME(m_selected_bank)); +} - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_ascii16_sram_device::restore_banks), this)); + +void msx_cart_ascii16_sram_device::device_post_load() +{ + restore_banks(); } @@ -397,7 +413,7 @@ void msx_cart_ascii16_sram_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_ascii16_sram_device::read_cart) +uint8_t msx_cart_ascii16_sram_device::read_cart(offs_t offset) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -419,7 +435,7 @@ READ8_MEMBER(msx_cart_ascii16_sram_device::read_cart) } -WRITE8_MEMBER(msx_cart_ascii16_sram_device::write_cart) +void msx_cart_ascii16_sram_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x6000 && offset < 0x6800) { @@ -461,8 +477,12 @@ msx_cart_msxwrite_device::msx_cart_msxwrite_device(const machine_config &mconfig void msx_cart_msxwrite_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite_device::restore_banks), this)); +void msx_cart_msxwrite_device::device_post_load() +{ + restore_banks(); } @@ -506,7 +526,7 @@ void msx_cart_msxwrite_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_msxwrite_device::read_cart) +uint8_t msx_cart_msxwrite_device::read_cart(offs_t offset) { if ( offset >= 0x4000 && offset < 0xC000 ) { @@ -516,7 +536,7 @@ READ8_MEMBER(msx_cart_msxwrite_device::read_cart) } -WRITE8_MEMBER(msx_cart_msxwrite_device::write_cart) +void msx_cart_msxwrite_device::write_cart(offs_t offset, uint8_t data) { // The rom writes to 6fff and 7fff for banking, unknown whether // other locations also trigger banking. diff --git a/src/devices/bus/msx_cart/ascii.h b/src/devices/bus/msx_cart/ascii.h index 2df178dc31d..0c5898fed40 100644 --- a/src/devices/bus/msx_cart/ascii.h +++ b/src/devices/bus/msx_cart/ascii.h @@ -22,13 +22,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -46,13 +47,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -70,13 +72,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -97,13 +100,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -124,13 +128,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/bm_012.cpp b/src/devices/bus/msx_cart/bm_012.cpp index db354b1e65c..f38215ac6cc 100644 --- a/src/devices/bus/msx_cart/bm_012.cpp +++ b/src/devices/bus/msx_cart/bm_012.cpp @@ -39,7 +39,8 @@ void msx_cart_bm_012_device::bm_012_memory_map(address_map &map) } -MACHINE_CONFIG_START(msx_cart_bm_012_device::device_add_mconfig) +void msx_cart_bm_012_device::device_add_mconfig(machine_config &config) +{ // 12MHz XTAL @ X1 // Toshiba TMPZ84C015AF-6 (@U5) components: // - Z80 @@ -69,13 +70,12 @@ MACHINE_CONFIG_START(msx_cart_bm_012_device::device_add_mconfig) m_bm012_pio->out_brdy_callback().set("tmpz84c015af", FUNC(tmpz84c015_device::strobe_b)); // MIDI ports - MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin") - MCFG_MIDI_RX_HANDLER(WRITELINE(*this, msx_cart_bm_012_device, midi_in)) + MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set(FUNC(msx_cart_bm_012_device::midi_in)); - MCFG_MIDI_PORT_ADD("mdthru", midiout_slot, "midiout") + MIDI_PORT(config, "mdthru", midiout_slot, "midiout"); - MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout") -MACHINE_CONFIG_END + MIDI_PORT(config, "mdout", midiout_slot, "midiout"); +} ROM_START( msx_cart_bm_012 ) @@ -94,9 +94,8 @@ const tiny_rom_entry *msx_cart_bm_012_device::device_rom_region() const void msx_cart_bm_012_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0x70, 0x73, write8_delegate(FUNC(z80pio_device::write_alt), m_bm012_pio.target())); - space.install_read_handler(0x70, 0x73, read8_delegate(FUNC(z80pio_device::read_alt), m_bm012_pio.target())); + io_space().install_write_handler(0x70, 0x73, write8_delegate(FUNC(z80pio_device::write_alt), m_bm012_pio.target())); + io_space().install_read_handler(0x70, 0x73, read8_delegate(FUNC(z80pio_device::read_alt), m_bm012_pio.target())); } diff --git a/src/devices/bus/msx_cart/cartridge.cpp b/src/devices/bus/msx_cart/cartridge.cpp index 9c722e74872..3a3af30d191 100644 --- a/src/devices/bus/msx_cart/cartridge.cpp +++ b/src/devices/bus/msx_cart/cartridge.cpp @@ -26,6 +26,8 @@ #include "super_swangi.h" #include "yamaha.h" +#include "bus/msx_slot/cartridge.h" + void msx_cart(device_slot_interface &device) { @@ -72,7 +74,7 @@ void msx_cart(device_slot_interface &device) msx_cart_interface::msx_cart_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) - , m_out_irq_cb(*this) + , m_exp(nullptr) { } @@ -100,6 +102,21 @@ void msx_cart_interface::sram_alloc(uint32_t size) std::fill_n(m_sram.begin(), size, 0x00); } +WRITE_LINE_MEMBER(msx_cart_interface::irq_out) +{ + m_exp->irq_out(state); +} + +address_space &msx_cart_interface::memory_space() const +{ + return m_exp->memory_space(); +} + +address_space &msx_cart_interface::io_space() const +{ + return m_exp->io_space(); +} + // Several yamaha machines had 60 pin expansion slots. The pinouts of these slots was // exactly the same as the regular 50 pin cartridge slots. The lowest 10 pins are simply diff --git a/src/devices/bus/msx_cart/cartridge.h b/src/devices/bus/msx_cart/cartridge.h index 381ec09e566..529d2f0a081 100644 --- a/src/devices/bus/msx_cart/cartridge.h +++ b/src/devices/bus/msx_cart/cartridge.h @@ -10,19 +10,26 @@ void msx_cart(device_slot_interface &device); void msx_yamaha_60pin(device_slot_interface &device); // 60 pin expansion slots as found in yamaha machines +class msx_slot_cartridge_device; + class msx_cart_interface : public device_slot_card_interface { -public: - template <class Object> void set_out_irq_cb(Object &&cb) { m_out_irq_cb.set_callback(std::forward<Object>(cb)); } + friend class msx_slot_cartridge_device; +public: // This is called after loading cartridge contents and allows the cartridge // implementation to perform some additional initialization based on the // cartridge contents. virtual void initialize_cartridge() { } + virtual void interface_pre_start() override { assert(m_exp != nullptr); } // reading and writing - virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_cart) { } + virtual uint8_t read_cart(offs_t offset) { return 0xff; } + virtual void write_cart(offs_t offset, uint8_t data) { } + + DECLARE_WRITE_LINE_MEMBER(irq_out); + address_space &memory_space() const; + address_space &io_space() const; // ROM/RAM/SRAM management // Mainly used by the cartridge slot when loading images @@ -43,13 +50,13 @@ public: protected: msx_cart_interface(const machine_config &mconfig, device_t &device); - virtual void interface_pre_start() override { m_out_irq_cb.resolve_safe(); } - std::vector<uint8_t> m_rom; std::vector<uint8_t> m_ram; std::vector<uint8_t> m_rom_vlm5030; std::vector<uint8_t> m_sram; - devcb_write_line m_out_irq_cb; + +private: + msx_slot_cartridge_device *m_exp; }; diff --git a/src/devices/bus/msx_cart/crossblaim.cpp b/src/devices/bus/msx_cart/crossblaim.cpp index dfd7907ac46..6494e492f5b 100644 --- a/src/devices/bus/msx_cart/crossblaim.cpp +++ b/src/devices/bus/msx_cart/crossblaim.cpp @@ -21,8 +21,12 @@ msx_cart_crossblaim_device::msx_cart_crossblaim_device(const machine_config &mco void msx_cart_crossblaim_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_crossblaim_device::restore_banks), this)); +void msx_cart_crossblaim_device::device_post_load() +{ + restore_banks(); } @@ -58,7 +62,7 @@ void msx_cart_crossblaim_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_crossblaim_device::read_cart) +uint8_t msx_cart_crossblaim_device::read_cart(offs_t offset) { uint8_t *bank_base = m_bank_base[offset >> 14]; @@ -71,7 +75,7 @@ READ8_MEMBER(msx_cart_crossblaim_device::read_cart) } -WRITE8_MEMBER(msx_cart_crossblaim_device::write_cart) +void msx_cart_crossblaim_device::write_cart(offs_t offset, uint8_t data) { m_selected_bank = data & 3; if (m_selected_bank == 0) diff --git a/src/devices/bus/msx_cart/crossblaim.h b/src/devices/bus/msx_cart/crossblaim.h index a1321dd06df..04a44c1d905 100644 --- a/src/devices/bus/msx_cart/crossblaim.h +++ b/src/devices/bus/msx_cart/crossblaim.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/disk.cpp b/src/devices/bus/msx_cart/disk.cpp index a0e03e54920..7bbbdd292c0 100644 --- a/src/devices/bus/msx_cart/disk.cpp +++ b/src/devices/bus/msx_cart/disk.cpp @@ -197,7 +197,8 @@ void msx_cart_disk_device::initialize_cartridge() } -MACHINE_CONFIG_START(msx_cart_vy0010_device::device_add_mconfig) +void msx_cart_vy0010_device::device_add_mconfig(machine_config &config) +{ // From VY-0010 schematic: // HLT pulled high // SSO/-ENMF + -DDEN + ENP + -5/8 - pulled low @@ -206,60 +207,63 @@ MACHINE_CONFIG_START(msx_cart_vy0010_device::device_add_mconfig) m_fdc->set_force_ready(true); // Single sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35ssdd", msx_cart_disk_device::floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", msx_floppies, "35ssdd", msx_cart_disk_device::floppy_formats); // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface // so we list all msx floppy software lists. // - MCFG_SOFTWARE_LIST_ADD("flop_list","msx2_flop") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("msx1_flop_list","msx1_flop") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("msx2_flop"); + SOFTWARE_LIST(config, "msx1_flop_list").set_compatible("msx1_flop"); +} -MACHINE_CONFIG_START(msx_cart_fsfd1_device::device_add_mconfig) +void msx_cart_fsfd1_device::device_add_mconfig(machine_config &config) +{ WD2793(config, m_fdc, 4_MHz_XTAL / 4); // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats); // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface // so we list all msx floppy software lists. // - MCFG_SOFTWARE_LIST_ADD("flop_list","msx2_flop") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("msx1_flop_list","msx1_flop") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("msx2_flop"); + SOFTWARE_LIST(config, "msx1_flop_list").set_compatible("msx1_flop"); +} -MACHINE_CONFIG_START(msx_cart_fsfd1a_device::device_add_mconfig) +void msx_cart_fsfd1a_device::device_add_mconfig(machine_config &config) +{ TC8566AF(config, m_fdc, 16'000'000); // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats); // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface // so we list all msx floppy software lists. // - MCFG_SOFTWARE_LIST_ADD("flop_list","msx2_flop") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("msx1_flop_list","msx1_flop") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("msx2_flop"); + SOFTWARE_LIST(config, "msx1_flop_list").set_compatible("msx1_flop"); +} -MACHINE_CONFIG_START(msx_cart_fscf351_device::device_add_mconfig) +void msx_cart_fscf351_device::device_add_mconfig(machine_config &config) +{ MB8877(config, m_fdc, 4_MHz_XTAL / 4); m_fdc->set_force_ready(true); // Double sided 3.5" floppy drive - MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats); // Attach software lists // We do not know in what kind of machine the user has inserted the floppy interface // so we list all msx floppy software lists. // - MCFG_SOFTWARE_LIST_ADD("flop_list","msx2_flop") - MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("msx1_flop_list","msx1_flop") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("msx2_flop"); + SOFTWARE_LIST(config, "msx1_flop_list").set_compatible("msx1_flop"); +} void msx_cart_disk_type1_device::device_start() @@ -268,12 +272,10 @@ void msx_cart_disk_type1_device::device_start() save_item(NAME(m_side_control)); save_item(NAME(m_control)); - - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type1_device::post_load), this)); } -void msx_cart_disk_type1_device::post_load() +void msx_cart_disk_type1_device::device_post_load() { uint8_t data = m_control; @@ -338,7 +340,7 @@ void msx_cart_disk_type1_device::device_reset() } -READ8_MEMBER(msx_cart_disk_type1_device::read_cart) +uint8_t msx_cart_disk_type1_device::read_cart(offs_t offset) { switch (offset) { @@ -379,7 +381,7 @@ READ8_MEMBER(msx_cart_disk_type1_device::read_cart) } -WRITE8_MEMBER(msx_cart_disk_type1_device::write_cart) +void msx_cart_disk_type1_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { @@ -425,8 +427,6 @@ void msx_cart_disk_type2_device::device_start() m_led.resolve(); save_item(NAME(m_control)); - - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_disk_type2_device::post_load), this)); } @@ -436,7 +436,7 @@ void msx_cart_disk_type2_device::device_reset() } -void msx_cart_disk_type2_device::post_load() +void msx_cart_disk_type2_device::device_post_load() { uint8_t data = m_control; @@ -483,7 +483,7 @@ void msx_cart_disk_type2_device::set_control(uint8_t data) } -READ8_MEMBER(msx_cart_disk_type2_device::read_cart) +uint8_t msx_cart_disk_type2_device::read_cart(offs_t offset) { switch (offset) { @@ -516,7 +516,7 @@ READ8_MEMBER(msx_cart_disk_type2_device::read_cart) } -WRITE8_MEMBER(msx_cart_disk_type2_device::write_cart) +void msx_cart_disk_type2_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { @@ -564,17 +564,17 @@ void msx_cart_fsfd1a_device::device_reset() } -READ8_MEMBER(msx_cart_fsfd1a_device::read_cart) +uint8_t msx_cart_fsfd1a_device::read_cart(offs_t offset) { switch (offset) { case 0x7ffa: case 0xbffa: - return m_fdc->msr_r(space, 4); + return m_fdc->msr_r(); case 0x7ffb: case 0xbffb: - return m_fdc->fifo_r(space, 5); + return m_fdc->fifo_r(); } if (offset >= 0x4000 && offset < 0x8000) @@ -585,23 +585,23 @@ READ8_MEMBER(msx_cart_fsfd1a_device::read_cart) } -WRITE8_MEMBER(msx_cart_fsfd1a_device::write_cart) +void msx_cart_fsfd1a_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { case 0x7ff8: case 0xbff8: - m_fdc->dor_w(space, 2, data); + m_fdc->dor_w(data); break; case 0x7ff9: case 0xbff9: - m_fdc->cr1_w(space, 3, data); + m_fdc->cr1_w(data); break; case 0x7ffb: case 0xbffb: - m_fdc->fifo_w(space, 5, data); + m_fdc->fifo_w(data); break; default: diff --git a/src/devices/bus/msx_cart/disk.h b/src/devices/bus/msx_cart/disk.h index 908f2ef7229..ce238992349 100644 --- a/src/devices/bus/msx_cart/disk.h +++ b/src/devices/bus/msx_cart/disk.h @@ -45,8 +45,8 @@ protected: class msx_cart_disk_type1_device : public msx_cart_disk_wd_device { public: - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: msx_cart_disk_type1_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -54,8 +54,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - void post_load(); + virtual void device_post_load() override; output_finder<> m_led; uint8_t m_side_control; @@ -69,8 +68,8 @@ protected: class msx_cart_disk_type2_device : public msx_cart_disk_wd_device { public: - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: msx_cart_disk_type2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -78,8 +77,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - - void post_load(); + virtual void device_post_load() override; output_finder<> m_led; uint8_t m_control; @@ -139,8 +137,8 @@ protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/msx_cart/dooly.cpp b/src/devices/bus/msx_cart/dooly.cpp index d1d3ad9ff39..a0c4c7b4f83 100644 --- a/src/devices/bus/msx_cart/dooly.cpp +++ b/src/devices/bus/msx_cart/dooly.cpp @@ -36,7 +36,7 @@ void msx_cart_dooly_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_dooly_device::read_cart) +uint8_t msx_cart_dooly_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -54,7 +54,7 @@ READ8_MEMBER(msx_cart_dooly_device::read_cart) } -WRITE8_MEMBER(msx_cart_dooly_device::write_cart) +void msx_cart_dooly_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x4000 && offset < 0xc000) { diff --git a/src/devices/bus/msx_cart/dooly.h b/src/devices/bus/msx_cart/dooly.h index 3ef7b365c82..76f58ae762d 100644 --- a/src/devices/bus/msx_cart/dooly.h +++ b/src/devices/bus/msx_cart/dooly.h @@ -18,8 +18,8 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides diff --git a/src/devices/bus/msx_cart/fmpac.cpp b/src/devices/bus/msx_cart/fmpac.cpp index 7054c8c366a..a5229a6c61e 100644 --- a/src/devices/bus/msx_cart/fmpac.cpp +++ b/src/devices/bus/msx_cart/fmpac.cpp @@ -29,12 +29,12 @@ msx_cart_fmpac_device::msx_cart_fmpac_device(const machine_config &mconfig, cons } -MACHINE_CONFIG_START(msx_cart_fmpac_device::device_add_mconfig) +void msx_cart_fmpac_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym2413", YM2413, XTAL(10'738'635)/3) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) -MACHINE_CONFIG_END + YM2413(config, m_ym2413, XTAL(10'738'635)/3).add_route(ALL_OUTPUTS, "mono", 0.40); +} void msx_cart_fmpac_device::device_start() @@ -46,11 +46,14 @@ void msx_cart_fmpac_device::device_start() save_item(NAME(m_1fff)); save_item(NAME(m_7ff6)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_fmpac_device::restore_banks), this)); - // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0x7c, 0x7d, write8_delegate(FUNC(msx_cart_fmpac_device::write_ym2413), this)); + io_space().install_write_handler(0x7c, 0x7d, write8sm_delegate(FUNC(msx_cart_fmpac_device::write_ym2413), this)); +} + + +void msx_cart_fmpac_device::device_post_load() +{ + restore_banks(); } @@ -87,7 +90,7 @@ void msx_cart_fmpac_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_fmpac_device::read_cart) +uint8_t msx_cart_fmpac_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0x8000) { @@ -116,7 +119,7 @@ READ8_MEMBER(msx_cart_fmpac_device::read_cart) } -WRITE8_MEMBER(msx_cart_fmpac_device::write_cart) +void msx_cart_fmpac_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x4000 && offset < 0x6000) { @@ -141,7 +144,7 @@ WRITE8_MEMBER(msx_cart_fmpac_device::write_cart) case 0x7ff5: if (m_opll_active) { - m_ym2413->write(space, offset & 1, data); + m_ym2413->write(offset & 1, data); } break; @@ -159,10 +162,10 @@ WRITE8_MEMBER(msx_cart_fmpac_device::write_cart) } -WRITE8_MEMBER(msx_cart_fmpac_device::write_ym2413) +void msx_cart_fmpac_device::write_ym2413(offs_t offset, uint8_t data) { if (m_opll_active) { - m_ym2413->write(space, offset & 1, data); + m_ym2413->write(offset & 1, data); } } diff --git a/src/devices/bus/msx_cart/fmpac.h b/src/devices/bus/msx_cart/fmpac.h index 7100fe4a07c..a0f660b1620 100644 --- a/src/devices/bus/msx_cart/fmpac.h +++ b/src/devices/bus/msx_cart/fmpac.h @@ -19,14 +19,13 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; - - DECLARE_WRITE8_MEMBER(write_ym2413); + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; // device-level overrides virtual void device_add_mconfig(machine_config &config) override; @@ -34,6 +33,8 @@ protected: void restore_banks(); private: + void write_ym2413(offs_t offset, uint8_t data); + required_device<ym2413_device> m_ym2413; uint8_t m_selected_bank; diff --git a/src/devices/bus/msx_cart/fs_sr022.cpp b/src/devices/bus/msx_cart/fs_sr022.cpp index 7e0eac793df..bb84a759214 100644 --- a/src/devices/bus/msx_cart/fs_sr022.cpp +++ b/src/devices/bus/msx_cart/fs_sr022.cpp @@ -38,7 +38,7 @@ void msx_cart_fs_sr022_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_fs_sr022_device::read_cart) +uint8_t msx_cart_fs_sr022_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -52,7 +52,7 @@ READ8_MEMBER(msx_cart_fs_sr022_device::read_cart) } -WRITE8_MEMBER(msx_cart_fs_sr022_device::write_cart) +void msx_cart_fs_sr022_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/devices/bus/msx_cart/fs_sr022.h b/src/devices/bus/msx_cart/fs_sr022.h index bf3259090e1..2456b90a101 100644 --- a/src/devices/bus/msx_cart/fs_sr022.h +++ b/src/devices/bus/msx_cart/fs_sr022.h @@ -18,8 +18,8 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides diff --git a/src/devices/bus/msx_cart/halnote.cpp b/src/devices/bus/msx_cart/halnote.cpp index 013d2b83680..43f7947ec2c 100644 --- a/src/devices/bus/msx_cart/halnote.cpp +++ b/src/devices/bus/msx_cart/halnote.cpp @@ -19,8 +19,12 @@ msx_cart_halnote_device::msx_cart_halnote_device(const machine_config &mconfig, void msx_cart_halnote_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_halnote_device::restore_banks), this)); +void msx_cart_halnote_device::device_post_load() +{ + restore_banks(); } @@ -84,7 +88,7 @@ void msx_cart_halnote_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_halnote_device::read_cart) +uint8_t msx_cart_halnote_device::read_cart(offs_t offset) { if (offset >= 0xc000) { @@ -106,7 +110,7 @@ READ8_MEMBER(msx_cart_halnote_device::read_cart) } -WRITE8_MEMBER(msx_cart_halnote_device::write_cart) +void msx_cart_halnote_device::write_cart(offs_t offset, uint8_t data) { if (offset < 0x4000) { diff --git a/src/devices/bus/msx_cart/halnote.h b/src/devices/bus/msx_cart/halnote.h index ad64d2539ee..a9c1972afeb 100644 --- a/src/devices/bus/msx_cart/halnote.h +++ b/src/devices/bus/msx_cart/halnote.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/hfox.cpp b/src/devices/bus/msx_cart/hfox.cpp index d7fb793e42d..181d9710fcc 100644 --- a/src/devices/bus/msx_cart/hfox.cpp +++ b/src/devices/bus/msx_cart/hfox.cpp @@ -19,8 +19,12 @@ msx_cart_hfox_device::msx_cart_hfox_device(const machine_config &mconfig, const void msx_cart_hfox_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_hfox_device::restore_banks), this)); +void msx_cart_hfox_device::device_post_load() +{ + restore_banks(); } @@ -48,7 +52,7 @@ void msx_cart_hfox_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_hfox_device::read_cart) +uint8_t msx_cart_hfox_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -58,7 +62,7 @@ READ8_MEMBER(msx_cart_hfox_device::read_cart) } -WRITE8_MEMBER(msx_cart_hfox_device::write_cart) +void msx_cart_hfox_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/devices/bus/msx_cart/hfox.h b/src/devices/bus/msx_cart/hfox.h index debcbc31308..6254bae3610 100644 --- a/src/devices/bus/msx_cart/hfox.h +++ b/src/devices/bus/msx_cart/hfox.h @@ -16,13 +16,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/holy_quran.cpp b/src/devices/bus/msx_cart/holy_quran.cpp index 4c44656a9e3..046ed194502 100644 --- a/src/devices/bus/msx_cart/holy_quran.cpp +++ b/src/devices/bus/msx_cart/holy_quran.cpp @@ -30,8 +30,12 @@ void msx_cart_holy_quran_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_decrypt)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_holy_quran_device::restore_banks), this)); +void msx_cart_holy_quran_device::device_post_load() +{ + restore_banks(); } @@ -64,7 +68,7 @@ void msx_cart_holy_quran_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_holy_quran_device::read_cart) +uint8_t msx_cart_holy_quran_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -88,7 +92,7 @@ READ8_MEMBER(msx_cart_holy_quran_device::read_cart) } -WRITE8_MEMBER(msx_cart_holy_quran_device::write_cart) +void msx_cart_holy_quran_device::write_cart(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/devices/bus/msx_cart/holy_quran.h b/src/devices/bus/msx_cart/holy_quran.h index b805282790c..8d63a8271d9 100644 --- a/src/devices/bus/msx_cart/holy_quran.h +++ b/src/devices/bus/msx_cart/holy_quran.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/konami.cpp b/src/devices/bus/msx_cart/konami.cpp index e1d4e35321f..f5ac42be362 100644 --- a/src/devices/bus/msx_cart/konami.cpp +++ b/src/devices/bus/msx_cart/konami.cpp @@ -35,8 +35,12 @@ msx_cart_konami_device::msx_cart_konami_device(const machine_config &mconfig, co void msx_cart_konami_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_device::restore_banks), this)); +void msx_cart_konami_device::device_post_load() +{ + restore_banks(); } @@ -84,13 +88,13 @@ void msx_cart_konami_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_konami_device::read_cart) +uint8_t msx_cart_konami_device::read_cart(offs_t offset) { return m_bank_base[offset >> 13][offset & 0x1fff]; } -WRITE8_MEMBER(msx_cart_konami_device::write_cart) +void msx_cart_konami_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0xe000) { @@ -141,20 +145,24 @@ msx_cart_konami_scc_device::msx_cart_konami_scc_device(const machine_config &mco } -MACHINE_CONFIG_START(msx_cart_konami_scc_device::device_add_mconfig) +void msx_cart_konami_scc_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("k051649", K051649, XTAL(10'738'635)/3/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) -MACHINE_CONFIG_END + K051649(config, m_k051649, XTAL(10'738'635)/3/2).add_route(ALL_OUTPUTS, "mono", 0.15); +} void msx_cart_konami_scc_device::device_start() { save_item(NAME(m_selected_bank)); save_item(NAME(m_scc_active)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_scc_device::restore_banks), this)); +void msx_cart_konami_scc_device::device_post_load() +{ + restore_banks(); } @@ -203,7 +211,7 @@ void msx_cart_konami_scc_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_konami_scc_device::read_cart) +uint8_t msx_cart_konami_scc_device::read_cart(offs_t offset) { if ( m_scc_active && offset >= 0x9800 && offset < 0xa000 ) { @@ -211,13 +219,13 @@ READ8_MEMBER(msx_cart_konami_scc_device::read_cart) { if ((offset & 0xff) >= 0xe0) { - return m_k051649->k051649_test_r(space, offset & 0xff); + return m_k051649->k051649_test_r(); } return 0xff; } else { - return m_k051649->k051649_waveform_r(space, offset & 0x7f); + return m_k051649->k051649_waveform_r(offset & 0x7f); } } @@ -225,7 +233,7 @@ READ8_MEMBER(msx_cart_konami_scc_device::read_cart) } -WRITE8_MEMBER(msx_cart_konami_scc_device::write_cart) +void msx_cart_konami_scc_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0xf800) { @@ -255,27 +263,27 @@ WRITE8_MEMBER(msx_cart_konami_scc_device::write_cart) if (offset < 0x80) { - m_k051649->k051649_waveform_w(space, offset, data); + m_k051649->k051649_waveform_w(offset, data); } else if (offset < 0xa0) { offset &= 0x0f; if (offset < 0x0a) { - m_k051649->k051649_frequency_w(space, offset, data); + m_k051649->k051649_frequency_w(offset, data); } else if (offset < 0x0f) { - m_k051649->k051649_volume_w(space, offset - 0xa, data); + m_k051649->k051649_volume_w(offset - 0xa, data); } else { - m_k051649->k051649_keyonoff_w(space, 0, data); + m_k051649->k051649_keyonoff_w(data); } } else if (offset >= 0xe0) { - m_k051649->k051649_test_w(space, offset, data); + m_k051649->k051649_test_w(data); } } break; @@ -311,8 +319,12 @@ msx_cart_gamemaster2_device::msx_cart_gamemaster2_device(const machine_config &m void msx_cart_gamemaster2_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_gamemaster2_device::restore_banks), this)); +void msx_cart_gamemaster2_device::device_post_load() +{ + restore_banks(); } @@ -397,7 +409,7 @@ void msx_cart_gamemaster2_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_gamemaster2_device::read_cart) +uint8_t msx_cart_gamemaster2_device::read_cart(offs_t offset) { uint8_t bank = offset >> 13; @@ -431,7 +443,7 @@ READ8_MEMBER(msx_cart_gamemaster2_device::read_cart) } -WRITE8_MEMBER(msx_cart_gamemaster2_device::write_cart) +void msx_cart_gamemaster2_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0xf000) { @@ -472,13 +484,15 @@ msx_cart_synthesizer_device::msx_cart_synthesizer_device(const machine_config &m } -MACHINE_CONFIG_START(msx_cart_synthesizer_device::device_add_mconfig) +void msx_cart_synthesizer_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} void msx_cart_synthesizer_device::device_start() @@ -497,7 +511,7 @@ void msx_cart_synthesizer_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_synthesizer_device::read_cart) +uint8_t msx_cart_synthesizer_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000 ) { @@ -507,7 +521,7 @@ READ8_MEMBER(msx_cart_synthesizer_device::read_cart) } -WRITE8_MEMBER(msx_cart_synthesizer_device::write_cart) +void msx_cart_synthesizer_device::write_cart(offs_t offset, uint8_t data) { if ((offset & 0xc010) == 0x4000) { @@ -545,12 +559,12 @@ msx_cart_konami_sound_device::msx_cart_konami_sound_device(const machine_config } -MACHINE_CONFIG_START(msx_cart_konami_sound_device::device_add_mconfig) +void msx_cart_konami_sound_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("k052539", K051649, XTAL(10'738'635)/3/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) -MACHINE_CONFIG_END + K051649(config, m_k052539, XTAL(10'738'635)/3/2).add_route(ALL_OUTPUTS, "mono", 0.15); +} void msx_cart_konami_sound_device::device_start() @@ -559,8 +573,12 @@ void msx_cart_konami_sound_device::device_start() save_item(NAME(m_scc_active)); save_item(NAME(m_sccplus_active)); save_item(NAME(m_ram_enabled)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_konami_sound_device::restore_banks), this)); +void msx_cart_konami_sound_device::device_post_load() +{ + restore_banks(); } @@ -618,14 +636,14 @@ void msx_cart_konami_sound_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_konami_sound_device::read_cart) +uint8_t msx_cart_konami_sound_device::read_cart(offs_t offset) { if ( m_scc_active && offset >= 0x9800 && offset < 0x9fe0 ) { offset &= 0xff; if (offset < 0x80) { - return m_k052539->k051649_waveform_r(space, offset); + return m_k052539->k051649_waveform_r(offset); } if (offset < 0xa0) { @@ -633,11 +651,11 @@ READ8_MEMBER(msx_cart_konami_sound_device::read_cart) } if (offset < 0xc0) { - return m_k052539->k051649_waveform_r(space, offset & 0x9f); + return m_k052539->k051649_waveform_r(offset & 0x9f); } if (offset < 0xe0) { - return m_k052539->k051649_test_r(space, offset & 0xff); + return m_k052539->k051649_test_r(); } return 0xff; } @@ -647,11 +665,11 @@ READ8_MEMBER(msx_cart_konami_sound_device::read_cart) if (offset < 0xa0) { - return m_k052539->k052539_waveform_r(space, offset); + return m_k052539->k052539_waveform_r(offset); } if (offset >= 0xc0 && offset < 0xe0) { - return m_k052539->k051649_test_r(space, offset); + return m_k052539->k051649_test_r(); } return 0xff; } @@ -666,7 +684,7 @@ READ8_MEMBER(msx_cart_konami_sound_device::read_cart) } -WRITE8_MEMBER(msx_cart_konami_sound_device::write_cart) +void msx_cart_konami_sound_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0xe000) { @@ -714,27 +732,27 @@ WRITE8_MEMBER(msx_cart_konami_sound_device::write_cart) if (offset < 0x80) { - m_k052539->k051649_waveform_w(space, offset, data); + m_k052539->k051649_waveform_w(offset, data); } else if (offset < 0xa0) { offset &= 0x0f; if (offset < 0x0a) { - m_k052539->k051649_frequency_w(space, offset, data); + m_k052539->k051649_frequency_w(offset, data); } else if (offset < 0x0f) { - m_k052539->k051649_volume_w(space, offset - 0xa, data); + m_k052539->k051649_volume_w(offset - 0xa, data); } else { - m_k052539->k051649_keyonoff_w(space, 0, data); + m_k052539->k051649_keyonoff_w(data); } } else if (offset >= 0xe0) { - m_k052539->k051649_test_w(space, offset, data); + m_k052539->k051649_test_w(data); } } break; @@ -777,27 +795,27 @@ WRITE8_MEMBER(msx_cart_konami_sound_device::write_cart) offset &= 0xff; if (offset < 0xa0) { - m_k052539->k052539_waveform_w(space, offset, data); + m_k052539->k052539_waveform_w(offset, data); } else if (offset < 0xc0) { offset &= 0x0f; if (offset < 0x0a) { - m_k052539->k051649_frequency_w(space, offset, data); + m_k052539->k051649_frequency_w(offset, data); } else if (offset < 0x0f) { - m_k052539->k051649_volume_w(space, offset - 0x0a, data); + m_k052539->k051649_volume_w(offset - 0x0a, data); } else if (offset == 0x0f) { - m_k052539->k051649_keyonoff_w(space, 0, data); + m_k052539->k051649_keyonoff_w(data); } } else if (offset < 0xe0) { - m_k052539->k051649_test_w(space, offset, data); + m_k052539->k051649_test_w(data); } } } @@ -872,22 +890,22 @@ void msx_cart_keyboard_master_device::vlm_map(address_map &map) } -MACHINE_CONFIG_START(msx_cart_keyboard_master_device::device_add_mconfig) +void msx_cart_keyboard_master_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("vlm5030", VLM5030, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - MCFG_DEVICE_ADDRESS_MAP(0, vlm_map) -MACHINE_CONFIG_END + VLM5030(config, m_vlm5030, XTAL(3'579'545)); + m_vlm5030->add_route(ALL_OUTPUTS, "mono", 0.40); + m_vlm5030->set_addrmap(0, &msx_cart_keyboard_master_device::vlm_map); +} void msx_cart_keyboard_master_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0x00, 0x00, write8_delegate(FUNC(vlm5030_device::data_w), m_vlm5030.target())); - space.install_write_handler(0x20, 0x20, write8_delegate(FUNC(msx_cart_keyboard_master_device::io_20_w), this)); - space.install_read_handler(0x00, 0x00, read8_delegate(FUNC(msx_cart_keyboard_master_device::io_00_r), this)); + io_space().install_write_handler(0x00, 0x00, write8smo_delegate(FUNC(vlm5030_device::data_w), m_vlm5030.target())); + io_space().install_write_handler(0x20, 0x20, write8smo_delegate(FUNC(msx_cart_keyboard_master_device::io_20_w), this)); + io_space().install_read_handler(0x00, 0x00, read8smo_delegate(FUNC(msx_cart_keyboard_master_device::io_00_r), this)); } @@ -900,7 +918,7 @@ void msx_cart_keyboard_master_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_keyboard_master_device::read_cart) +uint8_t msx_cart_keyboard_master_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0x8000) { @@ -910,13 +928,13 @@ READ8_MEMBER(msx_cart_keyboard_master_device::read_cart) } -READ8_MEMBER(msx_cart_keyboard_master_device::read_vlm) +uint8_t msx_cart_keyboard_master_device::read_vlm(offs_t offset) { return m_rom_vlm5030[offset]; } -WRITE8_MEMBER(msx_cart_keyboard_master_device::io_20_w) +void msx_cart_keyboard_master_device::io_20_w(uint8_t data) { m_vlm5030->rst((data & 0x01) ? 1 : 0); m_vlm5030->vcu((data & 0x04) ? 1 : 0); @@ -924,7 +942,7 @@ WRITE8_MEMBER(msx_cart_keyboard_master_device::io_20_w) } -READ8_MEMBER(msx_cart_keyboard_master_device::io_00_r) +uint8_t msx_cart_keyboard_master_device::io_00_r() { return m_vlm5030->bsy() ? 0x10 : 0x00; } diff --git a/src/devices/bus/msx_cart/konami.h b/src/devices/bus/msx_cart/konami.h index 3985884f568..58ad4f3cfb7 100644 --- a/src/devices/bus/msx_cart/konami.h +++ b/src/devices/bus/msx_cart/konami.h @@ -25,13 +25,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -49,13 +50,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; virtual void device_add_mconfig(machine_config &config) override; @@ -78,13 +80,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); @@ -103,8 +106,8 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides @@ -123,8 +126,8 @@ class msx_cart_konami_sound_device : public device_t, public msx_cart_interface public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: msx_cart_konami_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -132,6 +135,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; virtual void device_add_mconfig(machine_config &config) override; @@ -186,14 +190,14 @@ protected: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual uint8_t read_cart(offs_t offset) override; private: required_device<vlm5030_device> m_vlm5030; - DECLARE_READ8_MEMBER(read_vlm); - DECLARE_WRITE8_MEMBER(io_20_w); - DECLARE_READ8_MEMBER(io_00_r); + uint8_t read_vlm(offs_t offset); + void io_20_w(uint8_t data); + uint8_t io_00_r(); void vlm_map(address_map &map); }; diff --git a/src/devices/bus/msx_cart/korean.cpp b/src/devices/bus/msx_cart/korean.cpp index cfa96ecb7aa..1906a5eb51b 100644 --- a/src/devices/bus/msx_cart/korean.cpp +++ b/src/devices/bus/msx_cart/korean.cpp @@ -21,8 +21,12 @@ msx_cart_korean_80in1_device::msx_cart_korean_80in1_device(const machine_config void msx_cart_korean_80in1_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_80in1_device::restore_banks), this)); +void msx_cart_korean_80in1_device::device_post_load() +{ + restore_banks(); } @@ -72,7 +76,7 @@ void msx_cart_korean_80in1_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_80in1_device::read_cart) +uint8_t msx_cart_korean_80in1_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -83,7 +87,7 @@ READ8_MEMBER(msx_cart_korean_80in1_device::read_cart) } -WRITE8_MEMBER(msx_cart_korean_80in1_device::write_cart) +void msx_cart_korean_80in1_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x4000 && offset < 0x4004) { @@ -112,11 +116,14 @@ void msx_cart_korean_90in1_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_90in1_device::restore_banks), this)); - // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0x77, 0x77, write8_delegate(FUNC(msx_cart_korean_90in1_device::banking), this)); + io_space().install_write_handler(0x77, 0x77, write8smo_delegate(FUNC(msx_cart_korean_90in1_device::banking), this)); +} + + +void msx_cart_korean_90in1_device::device_post_load() +{ + restore_banks(); } @@ -181,7 +188,7 @@ void msx_cart_korean_90in1_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_90in1_device::read_cart) +uint8_t msx_cart_korean_90in1_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -192,7 +199,7 @@ READ8_MEMBER(msx_cart_korean_90in1_device::read_cart) } -WRITE8_MEMBER(msx_cart_korean_90in1_device::banking) +void msx_cart_korean_90in1_device::banking(uint8_t data) { m_selected_bank = data; restore_banks(); @@ -215,8 +222,12 @@ msx_cart_korean_126in1_device::msx_cart_korean_126in1_device(const machine_confi void msx_cart_korean_126in1_device::device_start() { save_item(NAME(m_selected_bank)); +} - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_korean_126in1_device::restore_banks), this)); + +void msx_cart_korean_126in1_device::device_post_load() +{ + restore_banks(); } @@ -266,7 +277,7 @@ void msx_cart_korean_126in1_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_korean_126in1_device::read_cart) +uint8_t msx_cart_korean_126in1_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -277,7 +288,7 @@ READ8_MEMBER(msx_cart_korean_126in1_device::read_cart) } -WRITE8_MEMBER(msx_cart_korean_126in1_device::write_cart) +void msx_cart_korean_126in1_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x4000 && offset < 0x4002) { diff --git a/src/devices/bus/msx_cart/korean.h b/src/devices/bus/msx_cart/korean.h index b34438da13e..62c5a6ba82b 100644 --- a/src/devices/bus/msx_cart/korean.h +++ b/src/devices/bus/msx_cart/korean.h @@ -20,13 +20,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; private: void restore_banks(); @@ -45,16 +46,17 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - - DECLARE_WRITE8_MEMBER(banking); + virtual uint8_t read_cart(offs_t offset) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; private: + void banking(uint8_t data); + void restore_banks(); uint8_t m_bank_mask; @@ -70,13 +72,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; private: void restore_banks(); diff --git a/src/devices/bus/msx_cart/majutsushi.cpp b/src/devices/bus/msx_cart/majutsushi.cpp index ef76b62af2a..66efee9188f 100644 --- a/src/devices/bus/msx_cart/majutsushi.cpp +++ b/src/devices/bus/msx_cart/majutsushi.cpp @@ -26,20 +26,26 @@ msx_cart_majutsushi_device::msx_cart_majutsushi_device(const machine_config &mco } -MACHINE_CONFIG_START(msx_cart_majutsushi_device::device_add_mconfig) +void msx_cart_majutsushi_device::device_add_mconfig(machine_config &config) +{ // This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'. SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.05); // unknown DAC + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} void msx_cart_majutsushi_device::device_start() { save_item(NAME(m_selected_bank)); +} - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_majutsushi_device::restore_banks), this)); + +void msx_cart_majutsushi_device::device_post_load() +{ + restore_banks(); } @@ -76,13 +82,13 @@ void msx_cart_majutsushi_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_majutsushi_device::read_cart) +uint8_t msx_cart_majutsushi_device::read_cart(offs_t offset) { return m_bank_base[offset >> 13][offset & 0x1fff]; } -WRITE8_MEMBER(msx_cart_majutsushi_device::write_cart) +void msx_cart_majutsushi_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0xe000) { diff --git a/src/devices/bus/msx_cart/majutsushi.h b/src/devices/bus/msx_cart/majutsushi.h index 596fac47050..ebdf549272e 100644 --- a/src/devices/bus/msx_cart/majutsushi.h +++ b/src/devices/bus/msx_cart/majutsushi.h @@ -19,13 +19,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; virtual void device_add_mconfig(machine_config &config) override; diff --git a/src/devices/bus/msx_cart/moonsound.cpp b/src/devices/bus/msx_cart/moonsound.cpp index d8b1fda9a5e..e01498c57bc 100644 --- a/src/devices/bus/msx_cart/moonsound.cpp +++ b/src/devices/bus/msx_cart/moonsound.cpp @@ -67,13 +67,10 @@ const tiny_rom_entry *msx_cart_moonsound_device::device_rom_region() const void msx_cart_moonsound_device::device_start() { - m_out_irq_cb.resolve_safe(); - // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_readwrite_handler(0x7e, 0x7f, read8_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_pcm), this), write8_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_pcm), this)); - space.install_readwrite_handler(0xc4, 0xc7, read8_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_fm), this), write8_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_fm), this)); - space.install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(msx_cart_moonsound_device::read_c0), this)); + io_space().install_readwrite_handler(0x7e, 0x7f, read8sm_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_pcm), this), write8sm_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_pcm), this)); + io_space().install_readwrite_handler(0xc4, 0xc7, read8sm_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_fm), this), write8sm_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_fm), this)); + io_space().install_read_handler(0xc0, 0xc0, read8smo_delegate(FUNC(msx_cart_moonsound_device::read_c0), this)); } @@ -85,40 +82,40 @@ void msx_cart_moonsound_device::device_reset() WRITE_LINE_MEMBER(msx_cart_moonsound_device::irq_w) { LOG("moonsound: irq state %d\n", state); - m_out_irq_cb(state); + irq_out(state); } -WRITE8_MEMBER(msx_cart_moonsound_device::write_ymf278b_fm) +void msx_cart_moonsound_device::write_ymf278b_fm(offs_t offset, uint8_t data) { LOG("moonsound: write 0x%02x, data 0x%02x\n", 0xc4 + offset, data); - m_ymf278b->write(space, offset, data); + m_ymf278b->write(offset, data); } -READ8_MEMBER(msx_cart_moonsound_device::read_ymf278b_fm) +uint8_t msx_cart_moonsound_device::read_ymf278b_fm(offs_t offset) { LOG("moonsound: read 0x%02x\n", 0xc4 + offset); - return m_ymf278b->read(space, offset); + return m_ymf278b->read(offset); } -WRITE8_MEMBER(msx_cart_moonsound_device::write_ymf278b_pcm) +void msx_cart_moonsound_device::write_ymf278b_pcm(offs_t offset, uint8_t data) { LOG("moonsound: write 0x%02x, data 0x%02x\n", 0x7e + offset, data); - m_ymf278b->write(space, 4 + offset, data); + m_ymf278b->write(4 + offset, data); } -READ8_MEMBER(msx_cart_moonsound_device::read_ymf278b_pcm) +uint8_t msx_cart_moonsound_device::read_ymf278b_pcm(offs_t offset) { LOG("moonsound: read 0x%02x\n", 0x7e + offset); - return m_ymf278b->read(space, 4 + offset); + return m_ymf278b->read(4 + offset); } // For detecting presence of moonsound cartridge -READ8_MEMBER(msx_cart_moonsound_device::read_c0) +uint8_t msx_cart_moonsound_device::read_c0() { LOG("moonsound: read 0xc0\n"); return 0x00; diff --git a/src/devices/bus/msx_cart/moonsound.h b/src/devices/bus/msx_cart/moonsound.h index 02f16c94ed3..ca30dfb5c35 100644 --- a/src/devices/bus/msx_cart/moonsound.h +++ b/src/devices/bus/msx_cart/moonsound.h @@ -27,11 +27,11 @@ protected: private: DECLARE_WRITE_LINE_MEMBER(irq_w); - DECLARE_WRITE8_MEMBER(write_ymf278b_fm); - DECLARE_READ8_MEMBER(read_ymf278b_fm); - DECLARE_WRITE8_MEMBER(write_ymf278b_pcm); - DECLARE_READ8_MEMBER(read_ymf278b_pcm); - DECLARE_READ8_MEMBER(read_c0); + void write_ymf278b_fm(offs_t offset, uint8_t data); + uint8_t read_ymf278b_fm(offs_t offset); + void write_ymf278b_pcm(offs_t offset, uint8_t data); + uint8_t read_ymf278b_pcm(offs_t offset); + uint8_t read_c0(); void ymf278b_map(address_map &map); diff --git a/src/devices/bus/msx_cart/msx_audio.cpp b/src/devices/bus/msx_cart/msx_audio.cpp index 61f96ff1eaa..679c035b014 100644 --- a/src/devices/bus/msx_cart/msx_audio.cpp +++ b/src/devices/bus/msx_cart/msx_audio.cpp @@ -96,9 +96,8 @@ void msx_cart_msx_audio_hxmu900_device::device_add_mconfig(machine_config &confi void msx_cart_msx_audio_hxmu900_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0xc0, 0xc1, write8_delegate(FUNC(y8950_device::write), m_y8950.target())); - space.install_read_handler(0xc0, 0xc1, read8_delegate(FUNC(y8950_device::read), m_y8950.target())); + io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(FUNC(y8950_device::write), m_y8950.target())); + io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(FUNC(y8950_device::read), m_y8950.target())); } @@ -111,7 +110,7 @@ void msx_cart_msx_audio_hxmu900_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_hxmu900_device::read_cart) +uint8_t msx_cart_msx_audio_hxmu900_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xC000) { @@ -201,11 +200,10 @@ WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205_device::midi_in) void msx_cart_msx_audio_nms1205_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0xc0, 0xc1, write8_delegate(FUNC(y8950_device::write), m_y8950.target())); - space.install_read_handler(0xc0, 0xc1, read8_delegate(FUNC(y8950_device::read), m_y8950.target())); - space.install_write_handler(0x00, 0x01, write8_delegate(FUNC(acia6850_device::write), m_acia6850.target())); - space.install_read_handler(0x04, 0x05, read8_delegate(FUNC(acia6850_device::read), m_acia6850.target())); + io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(FUNC(y8950_device::write), m_y8950.target())); + io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(FUNC(y8950_device::read), m_y8950.target())); + io_space().install_write_handler(0x00, 0x01, write8sm_delegate(FUNC(acia6850_device::write), m_acia6850.target())); + io_space().install_read_handler(0x04, 0x05, read8sm_delegate(FUNC(acia6850_device::read), m_acia6850.target())); } @@ -218,7 +216,7 @@ void msx_cart_msx_audio_nms1205_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_nms1205_device::read_cart) +uint8_t msx_cart_msx_audio_nms1205_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xC000) { @@ -289,9 +287,8 @@ const tiny_rom_entry *msx_cart_msx_audio_fsca1_device::device_rom_region() const void msx_cart_msx_audio_fsca1_device::device_start() { // Install IO read/write handlers - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO); - space.install_write_handler(0xc0, 0xc3, write8_delegate(FUNC(msx_cart_msx_audio_fsca1_device::write_y8950), this)); - space.install_read_handler(0xc0, 0xc3, read8_delegate(FUNC(msx_cart_msx_audio_fsca1_device::read_y8950), this)); + io_space().install_write_handler(0xc0, 0xc3, write8sm_delegate(FUNC(msx_cart_msx_audio_fsca1_device::write_y8950), this)); + io_space().install_read_handler(0xc0, 0xc3, read8sm_delegate(FUNC(msx_cart_msx_audio_fsca1_device::read_y8950), this)); } @@ -304,7 +301,7 @@ void msx_cart_msx_audio_fsca1_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_msx_audio_fsca1_device::read_cart) +uint8_t msx_cart_msx_audio_fsca1_device::read_cart(offs_t offset) { if (m_7ffe == 0 && (offset & 0xB000) == 0x3000) { @@ -314,7 +311,7 @@ READ8_MEMBER(msx_cart_msx_audio_fsca1_device::read_cart) } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::write_cart) +void msx_cart_msx_audio_fsca1_device::write_cart(offs_t offset, uint8_t data) { if (offset == 0x7ffe) { @@ -338,45 +335,45 @@ WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::write_cart) } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::write_y8950) +void msx_cart_msx_audio_fsca1_device::write_y8950(offs_t offset, uint8_t data) { if (offset & 2) { if (m_7fff & 0x02) { - m_y8950->write(space, offset, data); + m_y8950->write(offset, data); } } else { if (m_7fff & 0x01) { - m_y8950->write(space, offset, data); + m_y8950->write(offset, data); } } } -READ8_MEMBER(msx_cart_msx_audio_fsca1_device::read_y8950) +uint8_t msx_cart_msx_audio_fsca1_device::read_y8950(offs_t offset) { if (offset & 2) { - return (m_7fff & 0x02) ? m_y8950->read(space, offset) : 0xff; + return (m_7fff & 0x02) ? m_y8950->read(offset) : 0xff; } else { - return (m_7fff & 0x01) ? m_y8950->read(space, offset) : 0xff; + return (m_7fff & 0x01) ? m_y8950->read(offset) : 0xff; } } -WRITE8_MEMBER(msx_cart_msx_audio_fsca1_device::y8950_io_w) +void msx_cart_msx_audio_fsca1_device::y8950_io_w(uint8_t data) { logerror("msx_fsca1::y8950_io_w: %02x\n", data); } -READ8_MEMBER(msx_cart_msx_audio_fsca1_device::y8950_io_r) +uint8_t msx_cart_msx_audio_fsca1_device::y8950_io_r() { return m_io_config->read(); } diff --git a/src/devices/bus/msx_cart/msx_audio.h b/src/devices/bus/msx_cart/msx_audio.h index d9fc89baa8c..3aeee7cddf1 100644 --- a/src/devices/bus/msx_cart/msx_audio.h +++ b/src/devices/bus/msx_cart/msx_audio.h @@ -23,7 +23,7 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual uint8_t read_cart(offs_t offset) override; protected: virtual void device_start() override; @@ -44,7 +44,7 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual uint8_t read_cart(offs_t offset) override; protected: virtual void device_start() override; @@ -71,8 +71,8 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: virtual void device_start() override; @@ -82,12 +82,12 @@ protected: virtual ioport_constructor device_input_ports() const override; virtual const tiny_rom_entry *device_rom_region() const override; - DECLARE_WRITE8_MEMBER(write_y8950); - DECLARE_READ8_MEMBER(read_y8950); - private: - DECLARE_WRITE8_MEMBER(y8950_io_w); - DECLARE_READ8_MEMBER(y8950_io_r); + void write_y8950(offs_t offset, uint8_t data); + uint8_t read_y8950(offs_t offset); + + void y8950_io_w(uint8_t data); + uint8_t y8950_io_r(); required_device<y8950_device> m_y8950; required_ioport m_io_config; diff --git a/src/devices/bus/msx_cart/msx_audio_kb.cpp b/src/devices/bus/msx_cart/msx_audio_kb.cpp index 9bbae0aab93..68303c56667 100644 --- a/src/devices/bus/msx_cart/msx_audio_kb.cpp +++ b/src/devices/bus/msx_cart/msx_audio_kb.cpp @@ -21,20 +21,20 @@ void msx_audio_kbdc_port_device::device_start() } -WRITE8_MEMBER(msx_audio_kbdc_port_device::write) +void msx_audio_kbdc_port_device::write(uint8_t data) { if (m_keyboard) { - m_keyboard->write(space, offset, data); + m_keyboard->write(data); } } -READ8_MEMBER(msx_audio_kbdc_port_device::read) +uint8_t msx_audio_kbdc_port_device::read() { if (m_keyboard) { - return m_keyboard->read(space, offset); + return m_keyboard->read(); } return 0xff; } @@ -57,7 +57,7 @@ public: virtual ioport_constructor device_input_ports() const override; - virtual DECLARE_READ8_MEMBER(read) override + virtual uint8_t read() override { uint8_t result = 0xff; @@ -71,7 +71,7 @@ public: return result; } - virtual DECLARE_WRITE8_MEMBER(write) override + virtual void write(uint8_t data) override { m_row = data; } @@ -187,7 +187,7 @@ public: virtual ioport_constructor device_input_ports() const override; - virtual DECLARE_READ8_MEMBER(read) override + virtual uint8_t read() override { uint8_t result = 0xff; @@ -201,7 +201,7 @@ public: return result; } - virtual DECLARE_WRITE8_MEMBER(write) override + virtual void write(uint8_t data) override { logerror("msx_nms1160::write %02x\n", data); m_row = data; diff --git a/src/devices/bus/msx_cart/msx_audio_kb.h b/src/devices/bus/msx_cart/msx_audio_kb.h index 25f0a2d24f8..93a2d026214 100644 --- a/src/devices/bus/msx_cart/msx_audio_kb.h +++ b/src/devices/bus/msx_cart/msx_audio_kb.h @@ -10,9 +10,8 @@ DECLARE_DEVICE_TYPE(MSX_AUDIO_KBDC_PORT, msx_audio_kbdc_port_device) class msx_audio_kb_port_interface : public device_slot_card_interface { public: - - virtual DECLARE_READ8_MEMBER(read) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write) { } + virtual uint8_t read() { return 0xff; } + virtual void write(uint8_t data) { } protected: // construction/destruction @@ -39,8 +38,8 @@ public: virtual void device_start() override; // Physical connection simply consists of 8 input and 8 output lines split across 2 connectors - DECLARE_WRITE8_MEMBER(write); - DECLARE_READ8_MEMBER(read); + void write(uint8_t data); + uint8_t read(); protected: diff --git a/src/devices/bus/msx_cart/msxdos2.cpp b/src/devices/bus/msx_cart/msxdos2.cpp index f4e391f66e9..7f3e506b007 100644 --- a/src/devices/bus/msx_cart/msxdos2.cpp +++ b/src/devices/bus/msx_cart/msxdos2.cpp @@ -18,8 +18,12 @@ msx_cart_msxdos2_device::msx_cart_msxdos2_device(const machine_config &mconfig, void msx_cart_msxdos2_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxdos2_device::restore_banks), this)); +void msx_cart_msxdos2_device::device_post_load() +{ + restore_banks(); } @@ -46,7 +50,7 @@ void msx_cart_msxdos2_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_msxdos2_device::read_cart) +uint8_t msx_cart_msxdos2_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0x8000) { @@ -57,7 +61,7 @@ READ8_MEMBER(msx_cart_msxdos2_device::read_cart) } -WRITE8_MEMBER(msx_cart_msxdos2_device::write_cart) +void msx_cart_msxdos2_device::write_cart(offs_t offset, uint8_t data) { if (offset == 0x6000) { diff --git a/src/devices/bus/msx_cart/msxdos2.h b/src/devices/bus/msx_cart/msxdos2.h index b30fbb70bd8..dd5eb51d245 100644 --- a/src/devices/bus/msx_cart/msxdos2.h +++ b/src/devices/bus/msx_cart/msxdos2.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/nomapper.cpp b/src/devices/bus/msx_cart/nomapper.cpp index 5152464cbc4..24ebbb38e0d 100644 --- a/src/devices/bus/msx_cart/nomapper.cpp +++ b/src/devices/bus/msx_cart/nomapper.cpp @@ -84,7 +84,7 @@ void msx_cart_nomapper_device::initialize_cartridge() m_end_address = std::min<uint32_t>(m_start_address + size, 0x10000); } -READ8_MEMBER(msx_cart_nomapper_device::read_cart) +uint8_t msx_cart_nomapper_device::read_cart(offs_t offset) { if ( offset >= m_start_address && offset < m_end_address ) { diff --git a/src/devices/bus/msx_cart/nomapper.h b/src/devices/bus/msx_cart/nomapper.h index 7b29b6a69b3..eb5e40e1d08 100644 --- a/src/devices/bus/msx_cart/nomapper.h +++ b/src/devices/bus/msx_cart/nomapper.h @@ -21,7 +21,7 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; + virtual uint8_t read_cart(offs_t offset) override; private: uint32_t m_start_address; diff --git a/src/devices/bus/msx_cart/rtype.cpp b/src/devices/bus/msx_cart/rtype.cpp index 3853cfeed9a..6cda0efb4e8 100644 --- a/src/devices/bus/msx_cart/rtype.cpp +++ b/src/devices/bus/msx_cart/rtype.cpp @@ -21,8 +21,12 @@ msx_cart_rtype_device::msx_cart_rtype_device(const machine_config &mconfig, cons void msx_cart_rtype_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_rtype_device::restore_banks), this)); +void msx_cart_rtype_device::device_post_load() +{ + restore_banks(); } @@ -54,7 +58,7 @@ void msx_cart_rtype_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_rtype_device::read_cart) +uint8_t msx_cart_rtype_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -64,7 +68,7 @@ READ8_MEMBER(msx_cart_rtype_device::read_cart) } -WRITE8_MEMBER(msx_cart_rtype_device::write_cart) +void msx_cart_rtype_device::write_cart(offs_t offset, uint8_t data) { if (offset >= 0x7000 && offset < 0x8000) { diff --git a/src/devices/bus/msx_cart/rtype.h b/src/devices/bus/msx_cart/rtype.h index 435d8666273..31583455a0a 100644 --- a/src/devices/bus/msx_cart/rtype.h +++ b/src/devices/bus/msx_cart/rtype.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/super_swangi.cpp b/src/devices/bus/msx_cart/super_swangi.cpp index 75ee75be6a0..a64b0648195 100644 --- a/src/devices/bus/msx_cart/super_swangi.cpp +++ b/src/devices/bus/msx_cart/super_swangi.cpp @@ -19,8 +19,12 @@ msx_cart_super_swangi_device::msx_cart_super_swangi_device(const machine_config void msx_cart_super_swangi_device::device_start() { save_item(NAME(m_selected_bank)); +} + - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_super_swangi_device::restore_banks), this)); +void msx_cart_super_swangi_device::device_post_load() +{ + restore_banks(); } @@ -48,7 +52,7 @@ void msx_cart_super_swangi_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_super_swangi_device::read_cart) +uint8_t msx_cart_super_swangi_device::read_cart(offs_t offset) { if (offset >= 0x4000 && offset < 0xc000) { @@ -58,7 +62,7 @@ READ8_MEMBER(msx_cart_super_swangi_device::read_cart) } -WRITE8_MEMBER(msx_cart_super_swangi_device::write_cart) +void msx_cart_super_swangi_device::write_cart(offs_t offset, uint8_t data) { if (offset == 0x8000) { diff --git a/src/devices/bus/msx_cart/super_swangi.h b/src/devices/bus/msx_cart/super_swangi.h index cf3b9f3b7c9..f0f5ee216bd 100644 --- a/src/devices/bus/msx_cart/super_swangi.h +++ b/src/devices/bus/msx_cart/super_swangi.h @@ -18,13 +18,14 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_post_load() override; void restore_banks(); diff --git a/src/devices/bus/msx_cart/superloderunner.cpp b/src/devices/bus/msx_cart/superloderunner.cpp index 51289c24f10..b846a935953 100644 --- a/src/devices/bus/msx_cart/superloderunner.cpp +++ b/src/devices/bus/msx_cart/superloderunner.cpp @@ -19,11 +19,14 @@ void msx_cart_superloderunner_device::device_start() { save_item(NAME(m_selected_bank)); - machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_superloderunner_device::restore_banks), this)); - // Install evil memory write handler - address_space &space = machine().device<cpu_device>("maincpu")->space(AS_PROGRAM); - space.install_write_handler(0x0000, 0x0000, write8_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); + memory_space().install_write_handler(0x0000, 0x0000, write8smo_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); +} + + +void msx_cart_superloderunner_device::device_post_load() +{ + restore_banks(); } @@ -44,7 +47,7 @@ void msx_cart_superloderunner_device::initialize_cartridge() } -READ8_MEMBER(msx_cart_superloderunner_device::read_cart) +uint8_t msx_cart_superloderunner_device::read_cart(offs_t offset) { if (offset >= 0x8000 && offset < 0xc000) { @@ -55,7 +58,7 @@ READ8_MEMBER(msx_cart_superloderunner_device::read_cart) } -WRITE8_MEMBER(msx_cart_superloderunner_device::banking) +void msx_cart_superloderunner_device::banking(uint8_t data) { m_selected_bank = data; restore_banks(); diff --git a/src/devices/bus/msx_cart/superloderunner.h b/src/devices/bus/msx_cart/superloderunner.h index b8e73535ebf..bd763ca2c08 100644 --- a/src/devices/bus/msx_cart/superloderunner.h +++ b/src/devices/bus/msx_cart/superloderunner.h @@ -18,17 +18,18 @@ public: virtual void initialize_cartridge() override; - virtual DECLARE_READ8_MEMBER(read_cart) override; - - DECLARE_WRITE8_MEMBER(banking); + virtual uint8_t read_cart(offs_t offset) override; protected: // device-level overrides virtual void device_start() override; + virtual void device_post_load() override; void restore_banks(); private: + void banking(uint8_t data); + uint8_t m_selected_bank; uint8_t *m_bank_base; }; diff --git a/src/devices/bus/msx_cart/yamaha.cpp b/src/devices/bus/msx_cart/yamaha.cpp index e6f7dc844fe..9296779f1b3 100644 --- a/src/devices/bus/msx_cart/yamaha.cpp +++ b/src/devices/bus/msx_cart/yamaha.cpp @@ -131,22 +131,22 @@ void msx_cart_sfg_device::check_irq() { if (m_ym2151_irq_state != CLEAR_LINE || m_ym2148_irq_state != CLEAR_LINE) { - m_out_irq_cb(ASSERT_LINE); + irq_out(ASSERT_LINE); } else { - m_out_irq_cb(CLEAR_LINE); + irq_out(CLEAR_LINE); } } -READ8_MEMBER(msx_cart_sfg_device::read_cart) +uint8_t msx_cart_sfg_device::read_cart(offs_t offset) { switch (offset & 0x3fff) { case 0x3ff0: // YM-2151 status read case 0x3ff1: // YM-2151 status read mirror? - return m_ym2151->status_r(space, 0); + return m_ym2151->status_r(); case 0x3ff2: // YM-2148 keyboard column read case 0x3ff3: // YM-2148 -- @@ -155,7 +155,7 @@ READ8_MEMBER(msx_cart_sfg_device::read_cart) case 0x3ff6: // YM-2148 MIDI UART status register // ------x- - 1 = received a byte/receive buffer full? // -------x - 1 = ready to send next byte/send buffer empty? - return m_ym2148->read(space, offset & 7); + return m_ym2148->read(offset & 7); } if (offset < 0x8000) @@ -167,16 +167,16 @@ READ8_MEMBER(msx_cart_sfg_device::read_cart) } -WRITE8_MEMBER(msx_cart_sfg_device::write_cart) +void msx_cart_sfg_device::write_cart(offs_t offset, uint8_t data) { switch (offset & 0x3fff) { case 0x3ff0: // YM-2151 register - m_ym2151->register_w(space, 0, data); + m_ym2151->register_w(data); break; case 0x3ff1: // YM-2151 data - m_ym2151->data_w(space, 0, data); + m_ym2151->data_w(data); break; case 0x3ff2: // YM-2148 write keyboard row @@ -191,7 +191,7 @@ WRITE8_MEMBER(msx_cart_sfg_device::write_cart) // x------- - 1 = reset // -----x-- - 1 = enable receiving / sending midi data // -------x - 1 = enable receiving / sending midi data - m_ym2148->write(space, offset & 7, data); + m_ym2148->write(offset & 7, data); break; default: diff --git a/src/devices/bus/msx_cart/yamaha.h b/src/devices/bus/msx_cart/yamaha.h index b8f30bf057f..e5072dc5dcf 100644 --- a/src/devices/bus/msx_cart/yamaha.h +++ b/src/devices/bus/msx_cart/yamaha.h @@ -18,8 +18,9 @@ DECLARE_DEVICE_TYPE(MSX_CART_SFG05, msx_cart_sfg05_device) class msx_cart_sfg_device : public device_t, public msx_cart_interface { public: - virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override; + virtual uint8_t read_cart(offs_t offset) override; + virtual void write_cart(offs_t offset, uint8_t data) override; + protected: msx_cart_sfg_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock); |