diff options
-rw-r--r-- | src/devices/machine/ncr5380.h | 1 | ||||
-rw-r--r-- | src/devices/machine/sonydriv.cpp | 6 | ||||
-rw-r--r-- | src/devices/machine/sonydriv.h | 4 | ||||
-rw-r--r-- | src/devices/machine/z80scc.h | 1 | ||||
-rw-r--r-- | src/mame/drivers/mac128.cpp | 136 | ||||
-rw-r--r-- | src/mame/drivers/macpci.cpp | 69 | ||||
-rw-r--r-- | src/mame/drivers/nsg6809.cpp | 27 | ||||
-rw-r--r-- | src/mame/machine/cuda.h | 4 | ||||
-rw-r--r-- | src/mame/machine/mackbd.h | 2 |
9 files changed, 138 insertions, 112 deletions
diff --git a/src/devices/machine/ncr5380.h b/src/devices/machine/ncr5380.h index d6f5eb76d06..b2f7e4f2509 100644 --- a/src/devices/machine/ncr5380.h +++ b/src/devices/machine/ncr5380.h @@ -46,6 +46,7 @@ public: ncr5380_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template <class Object> devcb_base &set_irq_callback(Object &&cb) { return m_irq_cb.set_callback(std::forward<Object>(cb)); } + auto irq_callback() { return m_irq_cb.bind(); } // our API uint8_t ncr5380_read_reg(uint32_t offset); diff --git a/src/devices/machine/sonydriv.cpp b/src/devices/machine/sonydriv.cpp index c18b6429ae0..f6f1a604648 100644 --- a/src/devices/machine/sonydriv.cpp +++ b/src/devices/machine/sonydriv.cpp @@ -578,3 +578,9 @@ void sonydriv_floppy_image_device::call_unload() legacy_floppy_image_device::call_unload(); } + +void sonydriv_floppy_image_device::legacy_2_drives_add(machine_config &mconfig, const floppy_interface *config) +{ + FLOPPY_SONY(mconfig, FLOPPY_0).set_floppy_config(config); + FLOPPY_SONY(mconfig, FLOPPY_1).set_floppy_config(config); +} diff --git a/src/devices/machine/sonydriv.h b/src/devices/machine/sonydriv.h index 82404805a16..f547d93216b 100644 --- a/src/devices/machine/sonydriv.h +++ b/src/devices/machine/sonydriv.h @@ -40,7 +40,9 @@ class sonydriv_floppy_image_device : public legacy_floppy_image_device { public: // construction/destruction - sonydriv_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + sonydriv_floppy_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + + static void legacy_2_drives_add(machine_config &mconfig, const floppy_interface *config); virtual void call_unload() override; diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h index 50ba0ee0c02..4927fccab3b 100644 --- a/src/devices/machine/z80scc.h +++ b/src/devices/machine/z80scc.h @@ -387,6 +387,7 @@ public: template <unsigned N, class Object> devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward<Object>(cb)); } template <unsigned N, class Object> devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward<Object>(cb)); } + auto out_int_callback() { return m_out_int_cb.bind(); } void set_cputag(const char *tag) { m_cputag = tag; } diff --git a/src/mame/drivers/mac128.cpp b/src/mame/drivers/mac128.cpp index a53a0d014fc..197b6dd4121 100644 --- a/src/mame/drivers/mac128.cpp +++ b/src/mame/drivers/mac128.cpp @@ -170,7 +170,7 @@ public: void init_macplus(); private: - required_device<cpu_device> m_maincpu; + required_device<m68000_device> m_maincpu; required_device<via6522_device> m_via; required_device<ram_device> m_ram; optional_device<ncr5380_device> m_ncr5380; @@ -219,6 +219,7 @@ private: int count_x, count_y; int m_last_was_x; int m_screen_buffer; + emu_timer *m_scan_timer; // interrupts int m_scc_interrupt, m_via_interrupt, m_scsi_interrupt, m_last_taken_interrupt; @@ -244,9 +245,9 @@ private: DECLARE_WRITE_LINE_MEMBER(mac_scsi_irq); DECLARE_WRITE_LINE_MEMBER(set_scc_interrupt); - TIMER_DEVICE_CALLBACK_MEMBER(mac_scanline); + TIMER_CALLBACK_MEMBER(mac_scanline); DECLARE_VIDEO_START(mac); - DECLARE_PALETTE_INIT(mac); + void palette_init(palette_device &palette); uint32_t screen_update_mac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); #ifndef MAC_USE_EMULATED_KBD TIMER_CALLBACK_MEMBER(kbd_clock); @@ -288,6 +289,9 @@ void mac128_state::machine_start() m_ram_size = m_ram->size()>>1; m_ram_mask = m_ram_size - 1; m_rom_ptr = (u16*)memregion("bootrom")->base(); + + if (!m_scan_timer) + m_scan_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mac128_state::mac_scanline), this)); } void mac128_state::machine_reset() @@ -312,6 +316,9 @@ void mac128_state::machine_reset() m_irq_count = 0; m_ca1_data = 0; m_ca2_data = 0; + + const int next_vpos = m_screen->vpos() + 1; + m_scan_timer->adjust(m_screen->time_until_pos(next_vpos), next_vpos); } READ16_MEMBER(mac128_state::ram_r) @@ -433,7 +440,7 @@ void mac128_state::update_volume() } } -TIMER_DEVICE_CALLBACK_MEMBER(mac128_state::mac_scanline) +TIMER_CALLBACK_MEMBER(mac128_state::mac_scanline) { int scanline = param; uint16_t *mac_snd_buf_ptr; @@ -458,6 +465,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(mac128_state::mac_scanline) } m_dac->write(mac_snd_buf_ptr[scanline] >> 8); + m_scan_timer->adjust(m_screen->time_until_pos(scanline+1), (scanline+1) % m_screen->height()); } WRITE_LINE_MEMBER(mac128_state::mac_scsi_irq) @@ -1221,7 +1229,7 @@ void mac128_state::mac128_state_load() { } -PALETTE_INIT_MEMBER(mac128_state,mac) +void mac128_state::palette_init(palette_device &palette) { palette.set_pen_color(0, 0xff, 0xff, 0xff); palette.set_pen_color(1, 0x00, 0x00, 0x00); @@ -1324,92 +1332,90 @@ static const floppy_interface mac_floppy_interface = "floppy_3_5" }; -MACHINE_CONFIG_START(mac128_state::mac512ke) +void mac128_state::mac512ke(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, C7M) /* 7.8336 MHz */ - MCFG_DEVICE_PROGRAM_MAP(mac512ke_map) - MCFG_QUANTUM_TIME(attotime::from_hz(60)) + M68000(config, m_maincpu, C7M); /* 7.8336 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &mac128_state::mac512ke_map); + config.m_minimum_quantum = attotime::from_hz(60); /* video hardware */ - MCFG_SCREEN_ADD(MAC_SCREEN_NAME, RASTER) - MCFG_SCREEN_RAW_PARAMS(C7M*2, MAC_H_TOTAL, 0, MAC_H_VIS, MAC_V_TOTAL, 0, MAC_V_VIS) - MCFG_SCREEN_UPDATE_DRIVER(mac128_state, screen_update_mac) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(C7M*2, MAC_H_TOTAL, 0, MAC_H_VIS, MAC_V_TOTAL, 0, MAC_V_VIS); + m_screen->set_screen_update(FUNC(mac128_state::screen_update_mac)); + m_screen->set_palette("palette"); - MCFG_PALETTE_ADD("palette", 2) - MCFG_PALETTE_INIT_OWNER(mac128_state,mac) + palette_device &palette(PALETTE(config, "palette", 2)); + palette.set_init(DEVICE_SELF_OWNER, FUNC(mac128_state::palette_init)); MCFG_VIDEO_START_OVERRIDE(mac128_state,mac) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mac128_state, mac_scanline, "screen", 0, 1) - /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD(DAC_TAG, DAC_8BIT_PWM, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // 2 x ls161 - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, DAC_TAG, 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, DAC_TAG, -1.0, DAC_VREF_NEG_INPUT) + DAC_8BIT_PWM(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // 2 x ls161 + voltage_regulator_device &vreg(VOLTAGE_REGULATOR(config, "vref")); + vreg.set_output(5.0); + vreg.add_route(0, DAC_TAG, 1.0, DAC_VREF_POS_INPUT); + vreg.add_route(0, DAC_TAG, -1.0, DAC_VREF_NEG_INPUT); /* devices */ - MCFG_RTC3430042_ADD("rtc", 32.768_kHz_XTAL) - MCFG_IWM_ADD("fdc", mac_iwm_interface) - MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) - - MCFG_DEVICE_ADD("scc", SCC85C30, C7M) - MCFG_Z80SCC_OFFSETS(C3_7M, 0, C3_7M, 0) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, mac128_state, set_scc_interrupt)) - - MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000) - MCFG_VIA6522_READPA_HANDLER(READ8(*this, mac128_state,mac_via_in_a)) - MCFG_VIA6522_READPB_HANDLER(READ8(*this, mac128_state,mac_via_in_b)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(*this, mac128_state,mac_via_out_a)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, mac128_state,mac_via_out_b)) - MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, mac128_state,mac_via_out_cb2)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, mac128_state,mac_via_irq)) - - MCFG_MACKBD_ADD(MACKBD_TAG) + RTC3430042(config, m_rtc, 32.768_kHz_XTAL); + IWM(config, m_iwm, 0).set_config(&mac_iwm_interface); + sonydriv_floppy_image_device::legacy_2_drives_add(config, &mac_floppy_interface); + + scc85c30_device &scc(SCC85C30(config, "scc", C7M)); + scc.configure_channels(C3_7M, 0, C3_7M, 0); + scc.out_int_callback().set(FUNC(mac128_state::set_scc_interrupt)); + + VIA6522(config, m_via, 1000000); + m_via->readpa_handler().set(FUNC(mac128_state::mac_via_in_a)); + m_via->readpb_handler().set(FUNC(mac128_state::mac_via_in_b)); + m_via->writepa_handler().set(FUNC(mac128_state::mac_via_out_a)); + m_via->writepb_handler().set(FUNC(mac128_state::mac_via_out_b)); + m_via->cb2_handler().set(FUNC(mac128_state::mac_via_out_cb2)); + m_via->irq_handler().set(FUNC(mac128_state::mac_via_irq)); + #ifdef MAC_USE_EMULATED_KBD - MCFG_MACKBD_DATAOUT_HANDLER(WRITELINE("via6522_0", via6522_device, write_cb2)) - MCFG_MACKBD_CLKOUT_HANDLER(WRITELINE(*this, mac128_state, mac_kbd_clk_in)) + mackbd_device &mackbd(MACKBD(config, MACKBD_TAG, 0)); + mackbd.dataout_handler().set(m_via, FUNC(via6522_device::write_cb2)); + mackbd.clkout_handler().set(FUNC(mac128_state::mac_kbd_clk_in)); +#else + MACKBD(config, MACKBD_TAG, 0); #endif /* internal ram */ - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("512K") + RAM(config, m_ram); + m_ram->set_default_size("512K"); // software list - MCFG_SOFTWARE_LIST_ADD("flop35_list","mac_flop") - MCFG_SOFTWARE_LIST_ADD("hdd_list", "mac_hdd") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop35_list").set_type("mac_flop", SOFTWARE_LIST_ORIGINAL_SYSTEM); + SOFTWARE_LIST(config, "hdd_list").set_type("mac_hdd", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mac128_state::mac128k) +void mac128_state::mac128k(machine_config &config) +{ mac512ke(config); - - /* internal ram */ - MCFG_RAM_MODIFY(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("128K") -MACHINE_CONFIG_END + m_ram->set_default_size("128K"); +} -MACHINE_CONFIG_START(mac128_state::macplus) +void mac128_state::macplus(machine_config &config) +{ mac512ke(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(macplus_map) - - MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) - MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE2, "harddisk", SCSIHD, SCSI_ID_5) + m_maincpu->set_addrmap(AS_PROGRAM, &mac128_state::macplus_map); - MCFG_DEVICE_ADD("ncr5380", NCR5380, C7M) - MCFG_LEGACY_SCSI_PORT("scsi") - MCFG_NCR5380_IRQ_CB(WRITELINE(*this, mac128_state, mac_scsi_irq)) + scsi_port_device &scsibus(SCSI_PORT(config, "scsi")); + scsibus.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_6)); + scsibus.set_slot_device(2, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_5)); - MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_MODIFY(mac_floppy_interface) + NCR5380(config, m_ncr5380, C7M); + m_ncr5380->set_scsi_port("scsi"); + m_ncr5380->irq_callback().set(FUNC(mac128_state::mac_scsi_irq)); /* internal ram */ - MCFG_RAM_MODIFY(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("4M") - MCFG_RAM_EXTRA_OPTIONS("1M,2M,2560K,4M") -MACHINE_CONFIG_END + m_ram->set_default_size("4M"); + m_ram->set_extra_options("1M,2M,2560K,4M"); +} static INPUT_PORTS_START( macplus ) PORT_START("MOUSE0") /* Mouse - button */ diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp index a4b9ad2c86a..3bc9360b946 100644 --- a/src/mame/drivers/macpci.cpp +++ b/src/mame/drivers/macpci.cpp @@ -91,54 +91,57 @@ uint32_t macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind16 return 0; } -MACHINE_CONFIG_START(macpci_state::pippin) +void macpci_state::pippin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PPC603, 66000000) - MCFG_DEVICE_PROGRAM_MAP(pippin_mem) + PPC603(config, m_maincpu, 66000000); + m_maincpu->set_addrmap(AS_PROGRAM, &macpci_state::pippin_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(macpci_state, screen_update_pippin) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(macpci_state::screen_update_pippin)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD_MONOCHROME("palette") + palette_device &palette(PALETTE(config, "palette", 2)); + palette.set_init("palette", FUNC(palette_device::palette_init_monochrome)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD( "cdda", CDDA ) - MCFG_SOUND_ROUTE( 0, "lspeaker", 1.00 ) - MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 ) + cdda_device &cdda(CDDA(config, "cdda")); + cdda.add_route(0, "lspeaker", 1.00); + cdda.add_route(1, "rspeaker", 1.00); - MCFG_CDROM_ADD("cdrom") - MCFG_CDROM_INTERFACE("pippin_cdrom") - MCFG_SOFTWARE_LIST_ADD("cd_list","pippin") + cdrom_image_device &cdrom(CDROM(config, "cdrom", 0)); + cdrom.set_interface("pippin_cdrom"); + SOFTWARE_LIST(config, "cd_list").set_type("pippin", SOFTWARE_LIST_ORIGINAL_SYSTEM); - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("32M") + RAM(config, m_ram); + m_ram->set_default_size("32M"); - MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10) - MCFG_VIA6522_READPA_HANDLER(READ8(*this, macpci_state, mac_via_in_a)) - MCFG_VIA6522_READPB_HANDLER(READ8(*this, macpci_state, mac_via_in_b)) - MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(*this, macpci_state,mac_via_out_a)) - MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, macpci_state,mac_via_out_b)) - MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, macpci_state, mac_adb_via_out_cb2)) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, macpci_state,mac_via_irq)) + VIA6522(config, m_via1, C7M/10); + m_via1->readpa_handler().set(FUNC(macpci_state::mac_via_in_a)); + m_via1->readpb_handler().set(FUNC(macpci_state::mac_via_in_b)); + m_via1->writepa_handler().set(FUNC(macpci_state::mac_via_out_a)); + m_via1->writepb_handler().set(FUNC(macpci_state::mac_via_out_b)); + m_via1->cb2_handler().set(FUNC(macpci_state::mac_adb_via_out_cb2)); + m_via1->irq_handler().set(FUNC(macpci_state::mac_via_irq)); //MCFG_DEVICE_ADD("scc", SCC8530, C7M) //MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(*this, macpci_state, set_scc_interrupt)) - MCFG_CUDA_ADD(CUDA_341S0060) - MCFG_CUDA_RESET_CALLBACK(WRITELINE(*this, macpci_state, cuda_reset_w)) - MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(*this, macpci_state, cuda_adb_linechange_w)) - MCFG_CUDA_VIA_CLOCK_CALLBACK(WRITELINE("via6522_0", via6522_device, write_cb1)) - MCFG_CUDA_VIA_DATA_CALLBACK(WRITELINE("via6522_0", via6522_device, write_cb2)) - MCFG_QUANTUM_PERFECT_CPU("maincpu") -MACHINE_CONFIG_END + CUDA(config, m_cuda, 0); + m_cuda->set_type(CUDA_341S0060); + m_cuda->reset_callback().set(FUNC(macpci_state::cuda_reset_w)); + m_cuda->linechange_callback().set(FUNC(macpci_state::cuda_adb_linechange_w)); + m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1)); + m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2)); + config.m_perfect_cpu_quantum = subtag("maincpu"); +} /* ROM definition */ /* diff --git a/src/mame/drivers/nsg6809.cpp b/src/mame/drivers/nsg6809.cpp index 1029a53f018..32904a6bef1 100644 --- a/src/mame/drivers/nsg6809.cpp +++ b/src/mame/drivers/nsg6809.cpp @@ -55,7 +55,7 @@ public: private: void main_map(address_map &map); - required_device<cpu_device> m_maincpu; + required_device<mc6809_device> m_maincpu; }; @@ -71,22 +71,23 @@ void nsg6809_state::main_map(address_map &map) static INPUT_PORTS_START( pitchhit ) INPUT_PORTS_END -MACHINE_CONFIG_START(nsg6809_state::pitchhit) - MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // clock buffered through 74HC4060 - MCFG_DEVICE_PROGRAM_MAP(main_map) +void nsg6809_state::pitchhit(machine_config &config) +{ + MC6809(config, m_maincpu, XTAL(4'000'000)); // clock buffered through 74HC4060 + m_maincpu->set_addrmap(AS_PROGRAM, &nsg6809_state::main_map); - MCFG_DEVICE_ADD("via", VIA6522, XTAL(4'000'000) / 4) - MCFG_VIA6522_IRQ_HANDLER(WRITELINE("mainirq", input_merger_device, in_w<0>)) + via6522_device &via(VIA6522(config, "via", XTAL(4'000'000) / 4)); + via.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); - MCFG_DEVICE_ADD("acia", MOS6551, 0) - MCFG_MOS6551_XTAL(XTAL(1'843'200)) - MCFG_MOS6551_IRQ_HANDLER(WRITELINE("mainirq", input_merger_device, in_w<1>)) + mos6551_device &acia(MOS6551(config, "acia", 0)); + acia.set_xtal(XTAL(1'843'200)); + acia.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); - MCFG_WATCHDOG_ADD("deadman") + WATCHDOG_TIMER(config, "deadman", 0); - MCFG_INPUT_MERGER_ANY_HIGH("mainirq") - MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M6809_IRQ_LINE)) -MACHINE_CONFIG_END + input_merger_device &merger(INPUT_MERGER_ANY_HIGH(config, "mainirq")); + merger.output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); +} /* diff --git a/src/mame/machine/cuda.h b/src/mame/machine/cuda.h index 158784a1198..d0bbc029204 100644 --- a/src/mame/machine/cuda.h +++ b/src/mame/machine/cuda.h @@ -100,6 +100,10 @@ public: template <class Object> devcb_base &set_linechange_cb(Object &&wr) { return write_linechange.set_callback(std::forward<Object>(wr)); } template <class Object> devcb_base &set_via_clock_cb(Object &&wr) { return write_via_clock.set_callback(std::forward<Object>(wr)); } template <class Object> devcb_base &set_via_data_cb(Object &&wr) { return write_via_data.set_callback(std::forward<Object>(wr)); } + auto reset_callback() { return write_reset.bind(); } + auto linechange_callback() { return write_linechange.bind(); } + auto via_clock_callback() { return write_via_clock.bind(); } + auto via_data_callback() { return write_via_data.bind(); } devcb_write_line write_reset, write_linechange, write_via_clock, write_via_data; diff --git a/src/mame/machine/mackbd.h b/src/mame/machine/mackbd.h index 4fba653cfc4..f91d6a14d00 100644 --- a/src/mame/machine/mackbd.h +++ b/src/mame/machine/mackbd.h @@ -38,6 +38,8 @@ public: // config helper template <class Object> devcb_base &set_clkout_handler(Object &&cb) { return m_clkout_handler.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_dataout_handler(Object &&cb) { return m_dataout_handler.set_callback(std::forward<Object>(cb)); } + auto clkout_handler() { return m_clkout_handler.bind(); } + auto dataout_handler() { return m_dataout_handler.bind(); } // construction/destruction mackbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); |