void nascom2_state::nascom2(machine_config &config) { nascom(config); Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &nascom2_state::nascom2_mem); m_maincpu->set_addrmap(AS_IO, &nascom2_state::nascom2_io); // video hardware m_screen->set_size(48 * 8, 16 * 14); m_screen->set_visarea(0, 48 * 8 - 1, 0, 16 * 14 - 1); m_screen->set_screen_update(FUNC(nascom2_state::screen_update_nascom)); m_gfxdecode->set_info(gfx_nascom2); // generic sockets for ram/rom (todo: support ram here) GENERIC_SOCKET(config, m_socket1, generic_plain_slot, "nascom_socket", "bin,rom"); m_socket1->set_device_load(device_image_load_delegate(&nascom2_state::device_image_load_socket1, this)); GENERIC_SOCKET(config, m_socket2, generic_plain_slot, "nascom_socket", "bin,rom"); m_socket2->set_device_load(device_image_load_delegate(&nascom2_state::device_image_load_socket2, this)); // nasbus expansion bus nasbus_device &nasbus(NASBUS(config, NASBUS_TAG)); nasbus.ram_disable().set(FUNC(nascom2_state::ram_disable_w)); NASBUS_SLOT(config, "nasbus1", nasbus_slot_cards, nullptr); NASBUS_SLOT(config, "nasbus2", nasbus_slot_cards, nullptr); NASBUS_SLOT(config, "nasbus3", nasbus_slot_cards, nullptr); NASBUS_SLOT(config, "nasbus4", nasbus_slot_cards, nullptr); // software SOFTWARE_LIST(config, "snap_list").set_original("nascom_snap").set_filter("NASCOM2"); SOFTWARE_LIST(config, "socket_list").set_original("nascom_socket"); SOFTWARE_LIST(config, "floppy_list").set_original("nascom_flop"); }
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)); }
void spectrum_intf2_device::device_add_mconfig(machine_config &config) { /* cartridge */ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "spectrum_cart", "bin,rom"); m_cart->set_device_load(device_image_load_delegate(&spectrum_intf2_device::device_image_load_spectrum_cart, this)); SOFTWARE_LIST(config, "cart_list").set_original("spectrum_cart"); }
//------------------------------------------------- // harddisk_image_device - constructor for subclasses //------------------------------------------------- harddisk_image_device::harddisk_image_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), m_device_image_load(device_image_load_delegate()), m_device_image_unload(device_image_func_delegate()), m_interface(nullptr) { }
harddisk_image_device::harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, HARDDISK, "Harddisk", tag, owner, clock, "harddisk_image", __FILE__), device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), m_device_image_load(device_image_load_delegate()), m_device_image_unload(device_image_func_delegate()), m_interface(nullptr) { }
diablo_image_device::diablo_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, DIABLO, "Diablo", tag, owner, clock, "diablo_image", __FILE__), device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), m_device_image_load(device_image_load_delegate()), m_device_image_unload(device_image_func_delegate()), m_interface(nullptr) { }
INPUT_PORTS_END void sega_beena_state::sega_beena(machine_config &config) { // unknown CPU // no screen SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart"); m_cart->set_width(GENERIC_ROM16_WIDTH); m_cart->set_device_load(device_image_load_delegate(&sega_beena_state::device_image_load_cart, this)); SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart"); }
INPUT_PORTS_END void c2_color_state::c2_color(machine_config &config) { // unknown CPU SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); m_screen->set_size(64*8, 32*8); m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1); m_screen->set_screen_update(FUNC(c2_color_state::screen_update)); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200); GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "c2color_cart"); m_cart->set_width(GENERIC_ROM16_WIDTH); m_cart->set_device_load(device_image_load_delegate(&c2_color_state::device_image_load_cart, this)); SOFTWARE_LIST(config, "cart_list").set_original("c2color_cart"); }
INPUT_PORTS_END // There is a SEEPROM on the motherboard (type?) void clickstart_state::clickstart(machine_config &config) { UNSP(config, m_maincpu, XTAL(27'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &clickstart_state::mem_map); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_size(320, 262); m_screen->set_visarea(0, 320-1, 0, 240-1); m_screen->set_screen_update("spg", FUNC(spg2xx_device::screen_update)); m_screen->screen_vblank().set(m_spg, FUNC(spg2xx_device::vblank)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); SPG28X(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen); m_spg->porta_out().set(FUNC(clickstart_state::porta_w)); m_spg->portb_out().set(FUNC(clickstart_state::portb_w)); m_spg->portc_out().set(FUNC(clickstart_state::portc_w)); m_spg->porta_in().set(FUNC(clickstart_state::porta_r)); m_spg->portb_in().set(FUNC(clickstart_state::portb_r)); m_spg->portc_in().set(FUNC(clickstart_state::portc_r)); m_spg->adc_in<0>().set_constant(0x0fff); m_spg->chip_select().set(FUNC(clickstart_state::chip_sel_w)); m_spg->add_route(ALL_OUTPUTS, "lspeaker", 0.5); m_spg->add_route(ALL_OUTPUTS, "rspeaker", 0.5); GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "clickstart_cart"); m_cart->set_width(GENERIC_ROM16_WIDTH); m_cart->set_device_load(device_image_load_delegate(&clickstart_state::device_image_load_cart, this)); SOFTWARE_LIST(config, "cart_list").set_original("clickstart_cart"); }
void mtx_state::mtx512(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &mtx_state::mtx_mem); m_maincpu->set_addrmap(AS_IO, &mtx_state::mtx_io); m_maincpu->set_daisy_config(mtx_daisy_chain); /* video hardware */ tms9929a_device &vdp(TMS9929A(config, "tms9929a", 10.6875_MHz_XTAL)); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); vdp.int_callback().set(FUNC(mtx_state::mtx_tms9929a_interrupt)); SCREEN(config, "screen", SCREEN_TYPE_RASTER); /* sound hardware */ SPEAKER(config, "mono").front_center(); SN76489A(config, m_sn, 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.00); /* devices */ Z80CTC(config, m_z80ctc, 4_MHz_XTAL); m_z80ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_z80ctc->zc_callback<1>().set(FUNC(mtx_state::ctc_trg1_w)); m_z80ctc->zc_callback<2>().set(FUNC(mtx_state::ctc_trg2_w)); TIMER(config, "z80ctc_timer").configure_periodic(FUNC(mtx_state::ctc_tick), attotime::from_hz(4_MHz_XTAL/13)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(mtx_state::write_centronics_busy)); m_centronics->fault_handler().set(FUNC(mtx_state::write_centronics_fault)); m_centronics->perror_handler().set(FUNC(mtx_state::write_centronics_perror)); m_centronics->select_handler().set(FUNC(mtx_state::write_centronics_select)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot")); snapshot.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(mtx_state, mtx), this), "mtx", attotime::from_seconds(1)); quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(mtx_state, mtx), this), "run", attotime::from_seconds(1)); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_interface("mtx_cass"); TIMER(config, "cassette_timer").configure_periodic(FUNC(mtx_state::cassette_tick), attotime::from_hz(44100)); /* internal ram */ RAM(config, m_ram).set_default_size("64K").set_extra_options("96K,128K,192K,320K,448K,512K"); /* rom extension board */ GENERIC_SOCKET(config, m_extrom, generic_plain_slot, "mtx_rom", "bin,rom"); m_extrom->set_device_load(device_image_load_delegate(&mtx_state::device_image_load_extrom_load, this)); /* rs232 board with disk drive bus */ MTX_EXP_SLOT(config, m_exp, mtx_expansion_devices, nullptr); m_exp->set_program_space(m_maincpu, AS_PROGRAM); m_exp->set_io_space(m_maincpu, AS_IO); m_exp->int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); m_exp->busreq_handler().set_inputline(m_maincpu, Z80_INPUT_LINE_BUSRQ); /* cartridge slot */ GENERIC_CARTSLOT(config, m_rompak, generic_plain_slot, "mtx_cart", "bin,rom"); m_rompak->set_device_load(device_image_load_delegate(&mtx_state::device_image_load_rompak_load, this)); /* software lists */ SOFTWARE_LIST(config, "cass_list").set_original("mtx_cass"); SOFTWARE_LIST(config, "flop_list").set_original("mtx_flop"); SOFTWARE_LIST(config, "cart_list").set_original("mtx_cart"); SOFTWARE_LIST(config, "rom_list").set_original("mtx_rom"); }