void bbc_mertec_device::device_add_mconfig(machine_config &config) { PIA6821(config, m_pia, DERIVED_CLOCK(1, 8)); //m_pia->readpb_handler().set("userport", FUNC(bbc_userport_slot_device::pb_r)); //m_pia->writepb_handler().set("userport", FUNC(bbc_userport_slot_device::pb_w)); //m_pia->irq_handler().set("irqs", FUNC(input_merger_device::in_w<0>)); /* adc */ UPD7002(config, m_upd7002, 0); m_upd7002->set_get_analogue_callback(FUNC(bbc_mertec_device::get_analogue_input), this); m_upd7002->set_eoc_callback(FUNC(bbc_mertec_device::upd7002_eoc), this); /* analogue port */ BBC_ANALOGUE_SLOT(config, m_analog, bbc_analogue_devices, nullptr); /* user port */ BBC_USERPORT_SLOT(config, m_userport, bbc_userport_devices, nullptr); //m_userport->cb1_handler().set(m_pia, FUNC(via6522_device::write_cb1)); //m_userport->cb2_handler().set(m_pia, FUNC(via6522_device::write_cb2)); /* 2mhz bus port */ BBC_1MHZBUS_SLOT(config, m_2mhzbus, DERIVED_CLOCK(1, 4), bbc_1mhzbus_devices, nullptr); m_2mhzbus->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_exp_slot_device::irq_w)); m_2mhzbus->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_exp_slot_device::nmi_w)); }
void sunplus_gcm394_base_device::device_add_mconfig(machine_config &config) { SUNPLUS_GCM394_AUDIO(config, m_spg_audio, DERIVED_CLOCK(1, 1)); m_spg_audio->write_irq_callback().set(FUNC(sunplus_gcm394_base_device::audioirq_w)); m_spg_audio->space_read_callback().set(FUNC(sunplus_gcm394_base_device::read_space)); m_spg_audio->add_route(0, *this, 1.0, AUTO_ALLOC_INPUT, 0); m_spg_audio->add_route(1, *this, 1.0, AUTO_ALLOC_INPUT, 1); GCM394_VIDEO(config, m_spg_video, DERIVED_CLOCK(1, 1), m_cpu, m_screen); m_spg_video->write_video_irq_callback().set(FUNC(sunplus_gcm394_base_device::videoirq_w)); m_spg_video->space_read_callback().set(FUNC(sunplus_gcm394_base_device::read_space)); }
void electron_rombox_device::device_add_mconfig(machine_config &config) { /* rom sockets */ GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[0]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom1_load, this)); GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[1]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom2_load, this)); GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[2]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom3_load, this)); GENERIC_SOCKET(config, m_rom[3], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[3]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom4_load, this)); GENERIC_SOCKET(config, m_rom[4], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[4]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom5_load, this)); GENERIC_SOCKET(config, m_rom[5], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[5]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom6_load, this)); GENERIC_SOCKET(config, m_rom[6], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[6]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom7_load, this)); GENERIC_SOCKET(config, m_rom[7], generic_plain_slot, "electron_rom", "bin,rom"); m_rom[7]->set_device_load(device_image_load_delegate(&electron_rombox_device::device_image_load_rom8_load, this)); /* pass-through */ ELECTRON_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), electron_expansion_devices, nullptr); m_exp->irq_handler().set(DEVICE_SELF_OWNER, FUNC(electron_expansion_slot_device::irq_w)); m_exp->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(electron_expansion_slot_device::nmi_w)); }
GFXDECODE_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void tk02_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "mono", SCREEN_TYPE_RASTER)); screen.set_color(rgb_t::green()); screen.set_raw(XTAL(8'000'000) * 2, 1024, 0, 640, 312, 0, 250); screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); GFXDECODE(config, "gfxdecode", "palette", gfx_tk02); MC6845(config, m_crtc, XTAL(8'000'000) / 4); m_crtc->set_screen("mono"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row), this); m_crtc->out_de_callback().set(FUNC(tk02_device::de_w)); TATUNG_PIPE(config, m_pipe, DERIVED_CLOCK(1, 1), tatung_pipe_cards, nullptr); }
void n2a03_device::device_add_mconfig(machine_config &config) { NES_APU(config, m_apu, DERIVED_CLOCK(1,1)); m_apu->irq().set(FUNC(n2a03_device::apu_irq)); m_apu->mem_read().set(FUNC(n2a03_device::apu_read_mem)); m_apu->add_route(ALL_OUTPUTS, ":mono", 0.50); }
void c64_tdos_cartridge_device::device_add_mconfig(machine_config &config) { MC6852(config, m_ssda, XTAL(6'500'000)); C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr); m_exp->set_passthrough(); }
void c64_supercpu_device::device_add_mconfig(machine_config &config) { G65816(config, m_maincpu, 1000000); m_maincpu->set_addrmap(AS_PROGRAM, &c64_supercpu_device::c64_supercpu_map); C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr); m_exp->set_passthrough(); }
void namco_54xx_device::device_add_mconfig(machine_config &config) { MB8844(config, m_cpu, DERIVED_CLOCK(1,1)); /* parent clock, internally divided by 6 */ m_cpu->read_k().set(FUNC(namco_54xx_device::K_r)); m_cpu->write_o().set(FUNC(namco_54xx_device::O_w)); m_cpu->read_r<0>().set(FUNC(namco_54xx_device::R0_r)); m_cpu->write_r<1>().set(FUNC(namco_54xx_device::R1_w)); }
void bally_as3022_device::device_add_mconfig(machine_config &config) { M6808(config, m_cpu, DERIVED_CLOCK(1, 1)); m_cpu->set_addrmap(AS_PROGRAM, &bally_as3022_device::as3022_map); PIA6821(config, m_pia, 0); m_pia->readpa_handler().set(FUNC(bally_as3022_device::pia_porta_r)); m_pia->writepa_handler().set(FUNC(bally_as3022_device::pia_porta_w)); m_pia->writepb_handler().set(FUNC(bally_as3022_device::pia_portb_w)); m_pia->cb2_handler().set(FUNC(bally_as3022_device::pia_cb2_w)); m_pia->irqa_handler().set(FUNC(bally_as3022_device::irq_w)); m_pia->irqb_handler().set(FUNC(bally_as3022_device::irq_w)); AY8910(config, m_ay, DERIVED_CLOCK(1, 4)); m_ay->port_a_read_callback().set(FUNC(bally_as3022_device::ay_io_r)); m_ay->add_route(ALL_OUTPUTS, *this, 0.33, AUTO_ALLOC_INPUT, 0); }
void electron_stlefs_device::device_add_mconfig(machine_config &config) { /* fdc */ WD1770(config, m_fdc, DERIVED_CLOCK(1, 2)); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(electron_cartslot_device::irq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(electron_cartslot_device::nmi_w)); FLOPPY_CONNECTOR(config, m_floppy0, stlefs_floppies, "525qd", electron_stlefs_device::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, m_floppy1, stlefs_floppies, nullptr, electron_stlefs_device::floppy_formats).enable_sound(true); }
void vic1112_device::device_add_mconfig(machine_config &config) { VIA6522(config, m_via0, DERIVED_CLOCK(1, 1)); m_via0->readpb_handler().set(FUNC(vic1112_device::via0_pb_r)); m_via0->writepb_handler().set(FUNC(vic1112_device::via0_pb_w)); m_via0->irq_handler().set(FUNC(vic1112_device::via0_irq_w)); VIA6522(config, m_via1, DERIVED_CLOCK(1, 1)); m_via1->readpb_handler().set(IEEE488_TAG, FUNC(ieee488_device::dio_r)); m_via1->writepa_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w)); m_via1->ca2_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w)); m_via1->cb2_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w)); m_via1->irq_handler().set(FUNC(vic1112_device::via1_irq_w)); IEEE488(config, m_bus, 0); ieee488_slot_device::add_cbm_defaults(config, nullptr); m_bus->srq_callback().set(m_via1, FUNC(via6522_device::write_cb1)); }
void ps2_keyboard_controller_device::device_add_mconfig(machine_config &config) { I8042(config, m_mcu, DERIVED_CLOCK(1, 1)); m_mcu->p1_in_cb().set(FUNC(ps2_keyboard_controller_device::p1_r)); m_mcu->p1_out_cb().set_nop(); m_mcu->p2_in_cb().set_constant(0xffU); m_mcu->p2_out_cb().set(FUNC(ps2_keyboard_controller_device::p2_w)); m_mcu->t0_in_cb().set([this] () { return kbd_clk_r(); }); m_mcu->t1_in_cb().set([this] () { return aux_clk_r(); }); }
void c64_sfx_sound_expander_cartridge_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "mono").front_center(); YM3526(config, m_opl, XTAL(3'579'545)); m_opl->irq_handler().set(FUNC(c64_sfx_sound_expander_cartridge_device::opl_irq_w)); m_opl->add_route(ALL_OUTPUTS, "mono", 0.70); C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr); m_exp->set_passthrough(); }
void bbc_cumana2_device::device_add_mconfig(machine_config &config) { MB8877(config, m_fdc, DERIVED_CLOCK(1, 8)); m_fdc->intrq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w)); FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); }
void abc_expansion_unit_device::device_add_mconfig(machine_config &config) { ABCBUS_SLOT(config, "io1", DERIVED_CLOCK(1, 1), abc80_cards, "abc830"); ABCBUS_SLOT(config, "io2", DERIVED_CLOCK(1, 1), abc80_cards, nullptr); ABCBUS_SLOT(config, "io3", DERIVED_CLOCK(1, 1), abc80_cards, nullptr); ABCBUS_SLOT(config, "io4", DERIVED_CLOCK(1, 1), abc80_cards, nullptr); ABCBUS_SLOT(config, "mem1", DERIVED_CLOCK(1, 1), abc80_cards, "memcard"); ABCBUS_SLOT(config, "mem2", DERIVED_CLOCK(1, 1), abc80_cards, "16k"); ABCBUS_SLOT(config, "mem3", DERIVED_CLOCK(1, 1), abc80_cards, nullptr); }
void abc890_device::device_add_mconfig(machine_config &config) { ABCBUS_SLOT(config, "io1", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io2", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io3", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io4", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "mem1", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "mem2", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "mem3", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); }
void abc852_device::device_add_mconfig(machine_config &config) { ABCBUS_SLOT(config, "io1", DERIVED_CLOCK(1, 1), abcbus_cards, "abc850fdd"); ABCBUS_SLOT(config, "io2", DERIVED_CLOCK(1, 1), abcbus_cards, "xebec") .set_option_default_bios("xebec", "basf6185"); ABCBUS_SLOT(config, "io3", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io4", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io5", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io6", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); ABCBUS_SLOT(config, "io7", DERIVED_CLOCK(1, 1), abcbus_cards, nullptr); }
void bally_cheap_squeak_device::device_add_mconfig(machine_config &config) { M6803(config, m_cpu, DERIVED_CLOCK(1, 1)); m_cpu->set_addrmap(AS_PROGRAM, &bally_cheap_squeak_device::cheap_squeak_map); m_cpu->out_p1_cb().set(FUNC(bally_cheap_squeak_device::out_p1_cb)); m_cpu->in_p2_cb().set(FUNC(bally_cheap_squeak_device::in_p2_cb)); m_cpu->out_p2_cb().set(FUNC(bally_cheap_squeak_device::out_p2_cb)); ZN429E(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 1.00, AUTO_ALLOC_INPUT, 0); 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 midway_cheap_squeak_deluxe_device::device_add_mconfig(machine_config &config) { M68000(config, m_cpu, DERIVED_CLOCK(1, 2)); m_cpu->set_addrmap(AS_PROGRAM, &midway_cheap_squeak_deluxe_device::csdeluxe_map); PIA6821(config, m_pia, 0); m_pia->writepa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::porta_w)); m_pia->writepb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::portb_w)); m_pia->irqa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); m_pia->irqb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); AD7533(config, m_dac, 0).add_route(ALL_OUTPUTS, *this, 1.0); 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); }
/*************************************************************************** DEVICE INTERFACE ***************************************************************************/ static ADDRESS_MAP_START( namco_62xx_map_io, AS_IO, 8, namco_62xx_device ) // AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_62xx_K_r) // AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_62xx_O_w) // AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_62xx_R0_r) // AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_READ(namco_62xx_R2_r) ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( namco_62xx ) MCFG_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 (TODO: Correct?) */ MCFG_CPU_IO_MAP(namco_62xx_map_io) MCFG_DEVICE_DISABLE() MACHINE_CONFIG_END ROM_START( namco_62xx ) ROM_REGION( 0x800, "mcu", 0 ) ROM_LOAD( "62xx.bin", 0x0000, 0x0800, CRC(308dc115) SHA1(fe0a60fc339ac2eeed4879a64c1aab130f9d4cfe) ) ROM_END /*------------------------------------------------- device start callback -------------------------------------------------*/ static DEVICE_START( namco_62xx )
WRITE8_MEMBER(taito_cchip_device::mem_w) { offset &= 0x3ff; return m_upd4464_bank->write8(space,offset,data); } static ADDRESS_MAP_START( cchip_map, AS_PROGRAM, 8, taito_cchip_device ) //AM_RANGE(0x0000, 0x0fff) AM_ROM // internal ROM of uPD7811 AM_RANGE(0x1000, 0x13ff) AM_DEVICE("upd4464_bank", address_map_bank_device, amap8) AM_RANGE(0x1400, 0x17ff) AM_READWRITE(asic_r, asic_w) AM_RANGE(0x2000, 0x3fff) AM_ROM AM_REGION("cchip_eprom", 0) // might not map here ADDRESS_MAP_END MACHINE_CONFIG_MEMBER( taito_cchip_device::device_add_mconfig ) MCFG_CPU_ADD("upd7811", UPD7811, DERIVED_CLOCK(1,1)) MCFG_CPU_PROGRAM_MAP(cchip_map) MCFG_DEVICE_ADD("upd4464_bank", ADDRESS_MAP_BANK, 0) MCFG_DEVICE_PROGRAM_MAP(cchip_ram_bank) MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8) MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(13) MCFG_ADDRESS_MAP_BANK_STRIDE(0x400) MACHINE_CONFIG_END void taito_cchip_device::device_start() { m_upd4464_bank->set_bank(0); save_item(NAME(m_asic_ram));
//------------------------------------------------- // device_reset - device-specific reset //------------------------------------------------- void tmpz84c011_device::device_reset() { z80_device::device_reset(); // initialize I/O tmpz84c011_dir_pa_w(*m_io, 0, 0); tmpz84c011_pa_w(*m_io, 0, 0); tmpz84c011_dir_pb_w(*m_io, 0, 0); tmpz84c011_pb_w(*m_io, 0, 0); tmpz84c011_dir_pc_w(*m_io, 0, 0); tmpz84c011_pc_w(*m_io, 0, 0); tmpz84c011_dir_pd_w(*m_io, 0, 0); tmpz84c011_pd_w(*m_io, 0, 0); tmpz84c011_dir_pe_w(*m_io, 0, 0); tmpz84c011_pe_w(*m_io, 0, 0); } /* CPU interface */ static MACHINE_CONFIG_FRAGMENT( tmpz84c011 ) MCFG_DEVICE_ADD("tmpz84c011_ctc", Z80CTC, DERIVED_CLOCK(1,1) ) MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0)) MCFG_Z80CTC_ZC0_CB(WRITELINE(tmpz84c011_device, zc0_cb_trampoline_w)) MCFG_Z80CTC_ZC1_CB(WRITELINE(tmpz84c011_device, zc1_cb_trampoline_w)) MCFG_Z80CTC_ZC2_CB(WRITELINE(tmpz84c011_device, zc2_cb_trampoline_w)) MACHINE_CONFIG_END machine_config_constructor tmpz84c011_device::device_mconfig_additions() const { return MACHINE_CONFIG_NAME( tmpz84c011 ); }
/*************************************************************************** DEVICE INTERFACE ***************************************************************************/ static ADDRESS_MAP_START( namco_54xx_map_io, ADDRESS_SPACE_IO, 8 ) AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_54xx_K_r) AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_54xx_O_w) AM_RANGE(MB88_PORTR0, MB88_PORTR0) AM_READ(namco_54xx_R0_r) AM_RANGE(MB88_PORTR1, MB88_PORTR1) AM_WRITE(namco_54xx_R1_w) AM_RANGE(MB88_PORTR2, MB88_PORTR2) AM_NOP ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( namco_54xx ) MCFG_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MCFG_CPU_IO_MAP(namco_54xx_map_io) MACHINE_CONFIG_END ROM_START( namco_54xx ) ROM_REGION( 0x400, "mcu", ROMREGION_LOADBYNAME ) ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) ) ROM_END /*------------------------------------------------- device start callback -------------------------------------------------*/ static DEVICE_START( namco_54xx )
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE(":ymsnd", ym2203_device, read, write) AM_RANGE(0xf900, 0xf900) AM_DEVREADWRITE(":oki1", okim6295_device, read, write) AM_RANGE(0xfa00, 0xfa00) AM_DEVREADWRITE(":oki2", okim6295_device, read, write) AM_RANGE(0xfb00, 0xfb00) AM_READ(nmk004_tonmk004_r) // from main cpu AM_RANGE(0xfc00, 0xfc00) AM_WRITE(nmk004_tomain_w) // to main cpu AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmk004_oki0_bankswitch_w) AM_RANGE(0xfc02, 0xfc02) AM_WRITE(nmk004_oki1_bankswitch_w) ADDRESS_MAP_END static ADDRESS_MAP_START( nmk004_sound_io_map, AS_IO, 8, nmk004_device ) AM_RANGE(0xFFC8, 0xFFC8) AM_WRITE(nmk004_port4_w) ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( nmk004 ) MCFG_CPU_ADD("mcu",TMP90840, DERIVED_CLOCK(1,1)) // unkonwn type, but 0x2000 byte internal ROM MCFG_CPU_PROGRAM_MAP(nmk004_sound_mem_map) MCFG_CPU_IO_MAP(nmk004_sound_io_map) MACHINE_CONFIG_END ROM_START( nmk004 ) ROM_REGION( 0x2000, "mcu", 0 ) ROM_LOAD( "nmk004.bin", 0x00000, 0x02000, CRC(83b6f611) SHA1(bb7ddc00affe8a066002ecd6858dbd2854af8940) ) ROM_END const device_type NMK004 = &device_creator<nmk004_device>; nmk004_device::nmk004_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, NMK004, "NMK004", tag, owner, clock, "nmk004", __FILE__),
{ dev[prio[data][1]] }, { dev[prio[data][2]] }, { nullptr } }; // insert these 3 entries in order before any externally linked devices daisy_init(daisy_chain); m_irq_priority = data; } } static MACHINE_CONFIG_FRAGMENT( tmpz84c015 ) /* basic machine hardware */ MCFG_Z80SIO0_ADD("tmpz84c015_sio", DERIVED_CLOCK(1,1), 0, 0, 0, 0) MCFG_Z80DART_OUT_INT_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0)) MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(tmpz84c015_device, out_txda_cb_trampoline_w)) MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(tmpz84c015_device, out_dtra_cb_trampoline_w)) MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(tmpz84c015_device, out_rtsa_cb_trampoline_w)) MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(tmpz84c015_device, out_wrdya_cb_trampoline_w)) MCFG_Z80DART_OUT_SYNCA_CB(WRITELINE(tmpz84c015_device, out_synca_cb_trampoline_w)) MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(tmpz84c015_device, out_txdb_cb_trampoline_w)) MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(tmpz84c015_device, out_dtrb_cb_trampoline_w)) MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(tmpz84c015_device, out_rtsb_cb_trampoline_w)) MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(tmpz84c015_device, out_wrdyb_cb_trampoline_w)) MCFG_Z80DART_OUT_SYNCB_CB(WRITELINE(tmpz84c015_device, out_syncb_cb_trampoline_w)) MCFG_Z80DART_OUT_RXDRQA_CB(WRITELINE(tmpz84c015_device, out_rxdrqa_cb_trampoline_w))
program_config.m_internal_map = address_map_constructor(FUNC(n2a03_device::n2a03_map), this); } std::unique_ptr<util::disasm_interface> n2a03_device::create_disassembler() { return std::make_unique<n2a03_disassembler>(); } WRITE_LINE_MEMBER(n2a03_device::apu_irq) { // games relying on the APU_IRQ don't seem to work anyway? (nes software list : timelord, mig29sf, firehawk) set_input_line(N2A03_APU_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } READ8_MEMBER(n2a03_device::apu_read_mem) { return mintf->program->read_byte(offset); } MACHINE_CONFIG_START(n2a03_device::device_add_mconfig) MCFG_DEVICE_ADD("nesapu", NES_APU, DERIVED_CLOCK(1,1) ) MCFG_NES_APU_IRQ_HANDLER(WRITELINE(*this, n2a03_device, apu_irq)) MCFG_NES_APU_MEM_READ_CALLBACK(READ8(*this, n2a03_device, apu_read_mem)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":mono", 0.50) MACHINE_CONFIG_END #include "cpu/m6502/n2a03.hxx"
ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x07) AM_READWRITE(gpio_r, gpio_w) AM_RANGE(0x08, 0x08) AM_READWRITE(gpiodir_r, gpiodir_w) AM_RANGE(0x0f, 0x0f) AM_READWRITE(adc_r, adc_w) AM_RANGE(0x10, 0x10) AM_READWRITE(jvs_r, jvs_w) AM_RANGE(0x12, 0x12) AM_WRITE(jvs_dest_w) AM_RANGE(0x15, 0x15) AM_READ(jvs_status_r) AM_RANGE(0x30, 0x30) AM_READWRITE(irq_enable_r, irq_enable_w) AM_RANGE(0x50, 0x50) AM_READWRITE(maple_irqlevel_r, maple_irqlevel_w) AM_RANGE(0x70, 0x70) AM_READWRITE(irq_pending_r, irq_pending_w) AM_RANGE(0x90, 0x90) AM_WRITE(jvs_control_w) AM_RANGE(0x91, 0x91) AM_READ(jvs_sense_r) ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( mie ) MCFG_CPU_ADD("mie", Z80, DERIVED_CLOCK(1,1)) MCFG_CPU_PROGRAM_MAP(mie_map) MCFG_CPU_IO_MAP(mie_port) MACHINE_CONFIG_END ROM_START( mie ) ROM_REGION( 0x800, "mie", 0 ) ROM_LOAD( "315-6146.bin", 0x000, 0x800, CRC(9b197e35) SHA1(864d14d58732dd4e2ee538ccc71fa8df7013ba06)) ROM_END void mie_device::static_set_gpio_name(device_t &device, int entry, const char *name) { mie_device &mie = downcast<mie_device &>(device); mie.gpio_name[entry] = name; }
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_r) AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ( p1_r) AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_r, p2_w) ADDRESS_MAP_END static INPUT_PORTS_START( at_keybc ) PORT_START("DSW") PORT_BIT( 0xbf, 0xbf, IPT_UNUSED ) PORT_DIPNAME( 0x40, 0x00, "Display switch") PORT_DIPSETTING( 0x40, "Monochrome adapter" ) PORT_DIPSETTING( 0x00, "Color/Graphics adapter" ) INPUT_PORTS_END // machine fragment static MACHINE_CONFIG_FRAGMENT( at_keybc ) MCFG_CPU_ADD("at_keybc", I8042, DERIVED_CLOCK(1,1)) MCFG_CPU_IO_MAP(at_keybc_io) MACHINE_CONFIG_END // rom definition for the 8042 internal rom ROM_START( at_keybc ) ROM_REGION(0x800, "at_keybc", 0) // unknown controller bios, (c) 1985, 1986 PTL ROM_LOAD("yan25d05.bin", 0x000, 0x800, CRC(70c798f1) SHA1(ae9a79c7184a17331b70a50035ff63c757df094c)) // 1983 ibm controller bios ROM_LOAD("1503033.bin", 0x000, 0x800, CRC(5a81c0d2) SHA1(0100f8789fb4de74706ae7f9473a12ec2b9bd729)) ROM_END //**************************************************************************
// I/O map for the DSP static ADDRESS_MAP_START( tms_io_map, AS_IO, 16, bsmt2000_device) AM_RANGE(0, 0) AM_READWRITE(tms_register_r, tms_rom_addr_w) AM_RANGE(1, 1) AM_READWRITE(tms_data_r, tms_rom_bank_w) AM_RANGE(2, 2) AM_READ(tms_rom_r) AM_RANGE(3, 3) AM_WRITE(tms_left_w) AM_RANGE(7, 7) AM_WRITE(tms_right_w) AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(tms_write_pending_r) ADDRESS_MAP_END // machine fragment static MACHINE_CONFIG_FRAGMENT( bsmt2000 ) MCFG_CPU_ADD("bsmt2000", TMS32015, DERIVED_CLOCK(1,1)) MCFG_CPU_PROGRAM_MAP(tms_program_map) // data map is internal to the CPU MCFG_CPU_IO_MAP(tms_io_map) MACHINE_CONFIG_END // default address map for the external memory interface // the BSMT can address a full 32 bits but typically only 24 are used static ADDRESS_MAP_START( bsmt2000, AS_0, 8, bsmt2000_device) AM_RANGE(0x00000, 0xffffff) AM_ROM ADDRESS_MAP_END // ROM definition for the BSMT2000 program ROM ROM_START( bsmt2000 )
// rom_region - return a pointer to the device's // internal ROM region //------------------------------------------------- const tiny_rom_entry *bsmt2000_device::device_rom_region() const { return ROM_NAME( bsmt2000 ); } //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- MACHINE_CONFIG_START(bsmt2000_device::device_add_mconfig) MCFG_DEVICE_ADD("bsmt2000", TMS32015, DERIVED_CLOCK(1,1)) MCFG_DEVICE_PROGRAM_MAP(tms_program_map) // data map is internal to the CPU MCFG_DEVICE_IO_MAP(tms_io_map) MCFG_TMS32010_BIO_IN_CB(READLINE(*this, bsmt2000_device, tms_write_pending_r)) MACHINE_CONFIG_END //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- void bsmt2000_device::device_start() { m_ready_callback.bind_relative_to(*owner());