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 acrnsys_state::acrnsys4(machine_config &config) { /* 6502 CPU Board */ a6502(config); /* Acorn Bus - 14 Slot Backplane */ ACORN_BUS(config, m_bus, 0); m_bus->set_cputag(m_maincpu); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff ACORN_BUS_SLOT(config, "bus2", m_bus, acorn_bus_devices, "8k"); // 0xc000-0xdfff ACORN_BUS_SLOT(config, "bus3", m_bus, acorn_bus_devices, "vdu40"); ACORN_BUS_SLOT(config, "bus4", m_bus, acorn_bus_devices, "fdc"); ACORN_BUS_SLOT(config, "bus5", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus6", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus7", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus8", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus9", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus10", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus11", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus12", m_bus, acorn_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus13", m_bus, acorn_bus_devices, nullptr); /* Software lists */ SOFTWARE_LIST(config, "flop_list").set_original("acrnsys_flop"); SOFTWARE_LIST(config, "rom_list").set_original("acrnsys_rom"); }
void nes_state::famicom(machine_config &config) { nes(config); NES_CONTROL_PORT(config.replace(), m_ctrl1, fc_control_port1_devices, "joypad"); NES_CONTROL_PORT(config.replace(), m_ctrl2, fc_control_port2_devices, "joypad"); NES_CONTROL_PORT(config, m_exp, fc_expansion_devices, nullptr); m_exp->set_brightpixel_callback(FUNC(nes_state::bright_pixel)); SOFTWARE_LIST(config, "flop_list").set_original("famicom_flop"); SOFTWARE_LIST(config, "cass_list").set_original("famicom_cass"); }
void laser2001_state::lasr2001(machine_config &config) { // basic machine hardware M6502(config, m_maincpu, XTAL(17'734'470)/9); m_maincpu->set_addrmap(AS_PROGRAM, &laser2001_state::lasr2001_map); // devices PIA6821(config, m_pia, 0); m_pia->readpa_handler().set(FUNC(laser2001_state::pia_pa_r)); m_pia->readpb_handler().set(FUNC(laser2001_state::pia_pb_r)); m_pia->readca1_handler().set(FUNC(laser2001_state::pia_ca1_r)); m_pia->writepa_handler().set(FUNC(laser2001_state::pia_pa_w)); m_pia->writepb_handler().set(FUNC(laser2001_state::pia_pb_w)); m_pia->ca2_handler().set(FUNC(laser2001_state::pia_ca2_w)); m_pia->cb2_handler().set(FUNC(laser2001_state::pia_cb2_w)); CASSETTE(config, m_cassette); m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(laser2001_state::write_centronics_busy)); OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); // video hardware tms9929a_device &vdp(TMS9929A(config, TMS9929_TAG, XTAL(10'738'635))); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE); SCREEN(config, "screen", SCREEN_TYPE_RASTER); // sound hardware SPEAKER(config, "mono").front_center(); SN76489A(config, m_psg, XTAL(17'734'470)/9); m_psg->ready_cb().set(FUNC(laser2001_state::write_psg_ready)); m_psg->add_route(ALL_OUTPUTS, "mono", 1.00); WAVE(config, "wave", m_cassette).add_route(1, "mono", 0.25); // cartridge CRVISION_CART_SLOT(config, m_cart, crvision_cart, nullptr); // internal ram RAM(config, m_ram); m_ram->set_default_size("16K"); m_ram->set_extra_options("32K"); // software list SOFTWARE_LIST(config, "cart_list").set_original("crvision"); SOFTWARE_LIST(config, "cart_list2").set_original("laser2001_cart"); }
void z80netf_state::z80netf(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); m_maincpu->set_addrmap(AS_PROGRAM, &z80netf_state::z80netf_mem); m_maincpu->set_addrmap(AS_IO, &z80netf_state::z80netf_io); MCFG_MACHINE_START_OVERRIDE(z80netf_state,z80netf) MCFG_MACHINE_RESET_OVERRIDE(z80netf_state,z80netf) AY31015(config, m_uart); CLOCK(config, m_uart_clock, 4800); m_uart_clock->signal_handler().set(FUNC(z80netf_state::lx385_uart_tx_clock_w)); m_uart_clock->signal_handler().append(m_uart, FUNC(ay31015_device::write_rcp)); CASSETTE(config, m_cassette1); m_cassette1->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette1->set_interface("z80ne_cass"); CASSETTE(config, m_cassette2); m_cassette2->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette2->set_interface("z80ne_cass"); KR2376_ST(config, m_lx387_kr2376, 50000); /* video hardware */ SCREEN(config, "lx388", SCREEN_TYPE_RASTER); MC6847_PAL(config, m_vdg, 4.433619_MHz_XTAL); m_vdg->set_screen("lx388"); m_vdg->input_callback().set(FUNC(z80ne_state::lx388_mc6847_videoram_r)); // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND // other lines not connected FD1771(config, m_wd1771, 2_MHz_XTAL / 2); FLOPPY_CONNECTOR(config, "wd1771:0", z80ne_floppies, "sssd", z80ne_state::floppy_formats); FLOPPY_CONNECTOR(config, "wd1771:1", z80ne_floppies, "sssd", z80ne_state::floppy_formats); FLOPPY_CONNECTOR(config, "wd1771:2", z80ne_floppies, nullptr, z80ne_state::floppy_formats); FLOPPY_CONNECTOR(config, "wd1771:3", z80ne_floppies, nullptr, z80ne_state::floppy_formats); config.set_default_layout(layout_z80netf); /* internal ram */ RAM(config, m_ram).set_default_size("56K"); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); SOFTWARE_LIST(config, "flop_list").set_original("z80ne_flop"); }
void gmaster_state::gmaster(machine_config &config) { upd7810_device &upd(UPD7810(config, m_maincpu, 12_MHz_XTAL/2/*?*/)); // µPD78C11 in the unit upd.set_addrmap(AS_PROGRAM, &gmaster_state::gmaster_mem); upd.pa_in_cb().set_ioport("JOY"); upd.pb_in_cb().set(FUNC(gmaster_state::gmaster_portb_r)); upd.pc_in_cb().set(FUNC(gmaster_state::gmaster_portc_r)); upd.pd_in_cb().set(FUNC(gmaster_state::gmaster_portd_r)); upd.pf_in_cb().set(FUNC(gmaster_state::gmaster_portf_r)); upd.pa_out_cb().set(FUNC(gmaster_state::gmaster_porta_w)); upd.pb_out_cb().set(FUNC(gmaster_state::gmaster_portb_w)); upd.pc_out_cb().set(FUNC(gmaster_state::gmaster_portc_w)); upd.pd_out_cb().set(FUNC(gmaster_state::gmaster_portd_w)); upd.pf_out_cb().set(FUNC(gmaster_state::gmaster_portf_w)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(60); screen.set_size(64, 64); screen.set_visarea(0, 64-1-3, 0, 64-1); screen.set_screen_update(FUNC(gmaster_state::screen_update_gmaster)); screen.set_palette("palette"); PALETTE(config, "palette", FUNC(gmaster_state::gmaster_palette), ARRAY_LENGTH(gmaster_pens)); SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(0, "mono", 0.50); GENERIC_CARTSLOT(config, m_cart, generic_linear_slot, "gmaster_cart").set_must_be_loaded(true); SOFTWARE_LIST(config, "cart_list").set_original("gmaster"); }
DEVICE_INPUT_DEFAULTS_END void genpc_state::pcmda(machine_config &config) { /* basic machine hardware */ I8088(config, m_maincpu, 4772720); m_maincpu->set_addrmap(AS_PROGRAM, &genpc_state::pc8_map); m_maincpu->set_addrmap(AS_IO, &genpc_state::pc8_io); m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); IBM5160_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "mda", false); // FIXME: determine ISA bus clock ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "hdc", false); ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "adlib", false); ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); /* internal ram */ RAM(config, RAM_TAG).set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K"); /* software lists */ SOFTWARE_LIST(config, "disk_list").set_original("ibm5150"); }
void megaduck_state::megaduck(machine_config &config) { /* basic machine hardware */ LR35902(config, m_maincpu, XTAL(4'194'304)); /* 4.194304 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &megaduck_state::megaduck_map); m_maincpu->timer_cb().set(FUNC(gb_state::gb_timer_callback)); m_maincpu->set_halt_bug(true); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(DMG_FRAMES_PER_SECOND); screen.set_vblank_time(0); screen.set_screen_update("ppu", FUNC(dmg_ppu_device::screen_update)); screen.set_palette(m_palette); screen.set_size(20*8, 18*8); screen.set_visarea(0*8, 20*8-1, 0*8, 18*8-1); GFXDECODE(config, "gfxdecode", m_palette, gfxdecode_device::empty); PALETTE(config, m_palette, FUNC(megaduck_state::megaduck_palette), 4); DMG_PPU(config, m_ppu, m_maincpu); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); DMG_APU(config, m_apu, XTAL(4'194'304)); m_apu->add_route(0, "lspeaker", 0.50); m_apu->add_route(1, "rspeaker", 0.50); /* cartslot */ MEGADUCK_CART_SLOT(config, m_cartslot, megaduck_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("megaduck"); }
ROM_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void bbc_tube_casper_device::device_add_mconfig(machine_config &config) { M68000(config, m_m68000, 4_MHz_XTAL); m_m68000->set_addrmap(AS_PROGRAM, &bbc_tube_casper_device::tube_casper_mem); VIA6522(config, m_via6522_0, 4_MHz_XTAL / 2); m_via6522_0->writepb_handler().set(m_via6522_1, FUNC(via6522_device::write_pa)); m_via6522_0->ca2_handler().set(m_via6522_1, FUNC(via6522_device::write_cb1)); m_via6522_0->cb2_handler().set(m_via6522_1, FUNC(via6522_device::write_ca1)); m_via6522_0->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); VIA6522(config, m_via6522_1, 4_MHz_XTAL / 2); m_via6522_1->writepb_handler().set(m_via6522_0, FUNC(via6522_device::write_pa)); m_via6522_1->ca2_handler().set(m_via6522_0, FUNC(via6522_device::write_cb1)); m_via6522_1->cb2_handler().set(m_via6522_0, FUNC(via6522_device::write_ca1)); m_via6522_1->irq_handler().set_inputline(m_m68000, M68K_IRQ_1); /* software lists */ SOFTWARE_LIST(config, "flop_ls_casper").set_original("bbc_flop_68000"); }
void vc4000_state::vc4000(machine_config &config) { /* basic machine hardware */ // MCFG_DEVICE_ADD("maincpu", S2650, 865000) /* 3550000/4, 3580000/3, 4430000/3 */ S2650(config, m_maincpu, 3546875/4); m_maincpu->set_addrmap(AS_PROGRAM, &vc4000_state::vc4000_mem); m_maincpu->sense_handler().set(FUNC(vc4000_state::vc4000_vsync_r)); m_maincpu->set_periodic_int(FUNC(vc4000_state::vc4000_video_line), attotime::from_hz(312*53)); // GOLF needs this exact value /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(50); m_screen->set_size(226, 312); m_screen->set_visarea(8, 184, 0, 269); m_screen->set_screen_update(FUNC(vc4000_state::screen_update_vc4000)); m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(vc4000_state::vc4000_palette), 8); /* sound hardware */ SPEAKER(config, "mono").front_center(); VC4000_SND(config, m_custom, 0).add_route(ALL_OUTPUTS, "mono", 0.50); /* quickload */ quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(vc4000_state, vc4000), this), "pgm,tvc"); /* cartridge */ VC4000_CART_SLOT(config, "cartslot", vc4000_cart, nullptr); /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("vc4000"); }
ROM_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void bbc_tube_zep100_device::device_add_mconfig(machine_config &config) { Z80(config, m_z80, 4_MHz_XTAL); m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_zep100_device::tube_zep100_mem); m_z80->set_addrmap(AS_IO, &bbc_tube_zep100_device::tube_zep100_io); VIA6522(config, m_via, 4_MHz_XTAL / 2); m_via->writepb_handler().set(FUNC(bbc_tube_zep100_device::via_pb_w)); m_via->cb2_handler().set(m_ppi, FUNC(i8255_device::pc2_w)); m_via->ca2_handler().set(m_ppi, FUNC(i8255_device::pc6_w)); m_via->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); I8255A(config, m_ppi, 0); m_ppi->out_pa_callback().set(m_via, FUNC(via6522_device::write_pa)); m_ppi->in_pb_callback().set(FUNC(bbc_tube_zep100_device::ppi_pb_r)); m_ppi->out_pc_callback().set(FUNC(bbc_tube_zep100_device::ppi_pc_w)); /* internal ram */ RAM(config, m_ram).set_default_size("64K").set_default_value(0x00); /* software lists */ SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter("Z80"); }
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"); }
GFXDECODE_END void mbc200_state::mbc200(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 8_MHz_XTAL / 2); // NEC D780C-1 m_maincpu->set_addrmap(AS_PROGRAM, &mbc200_state::mbc200_mem); m_maincpu->set_addrmap(AS_IO, &mbc200_state::mbc200_io); z80_device &subcpu(Z80(config, "subcpu", 8_MHz_XTAL / 2)); // NEC D780C-1 subcpu.set_addrmap(AS_PROGRAM, &mbc200_state::mbc200_sub_mem); subcpu.set_addrmap(AS_IO, &mbc200_state::mbc200_sub_io); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(640, 400); screen.set_visarea(0, 640-1, 0, 400-1); screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); GFXDECODE(config, "gfxdecode", m_palette, gfx_mbc200); PALETTE(config, m_palette, palette_device::MONOCHROME); HD6845S(config, m_crtc, 8_MHz_XTAL / 4); // HD46505SP m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row), this); // sound SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 1000).add_route(ALL_OUTPUTS, "mono", 0.50); // frequency unknown SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); I8255(config, "ppi_1").out_pc_callback().set(FUNC(mbc200_state::p1_portc_w)); I8255(config, "ppi_2").in_pa_callback().set(FUNC(mbc200_state::p2_porta_r)); I8255(config, m_ppi_m); m_ppi_m->out_pa_callback().set(FUNC(mbc200_state::pm_porta_w)); m_ppi_m->out_pb_callback().set(FUNC(mbc200_state::pm_portb_w)); I8251(config, "uart1", 0); // INS8251N I8251(config, "uart2", 0); // INS8251A MB8876(config, m_fdc, 8_MHz_XTAL / 8); // guess FLOPPY_CONNECTOR(config, "fdc:0", mbc200_floppies, "qd", floppy_image_device::default_floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", mbc200_floppies, "qd", floppy_image_device::default_floppy_formats).enable_sound(true); /* Keyboard */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); keyboard.set_keyboard_callback(FUNC(mbc200_state::kbd_put)); /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("mbc200"); }
INPUT_PORTS_END void nes_state::nes(machine_config &config) { /* basic machine hardware */ N2A03(config, m_maincpu, NTSC_APU_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &nes_state::nes_map); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60.0988); // This isn't used so much to calulate the vblank duration (the PPU code tracks that manually) but to determine // the number of cycles in each scanline for the PPU scanline timer. Since the PPU has 20 vblank scanlines + 2 // non-rendering scanlines, we compensate. This ends up being 2500 cycles for the non-rendering portion, 2273 // cycles for the actual vblank period. m_screen->set_vblank_time(ATTOSECONDS_IN_USEC((113.66/(NTSC_APU_CLOCK.dvalue()/1000000)) * (ppu2c0x_device::VBLANK_LAST_SCANLINE_NTSC-ppu2c0x_device::VBLANK_FIRST_SCANLINE+1+2))); m_screen->set_size(32*8, 262); m_screen->set_visarea(0*8, 32*8-1, 0*8, 30*8-1); m_screen->set_screen_update(FUNC(nes_state::screen_update_nes)); PPU_2C02(config, m_ppu); m_ppu->set_cpu_tag(m_maincpu); m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); /* sound hardware */ SPEAKER(config, "mono").front_center(); // note APU sound level here was specified as 0.90, not 0.50 like the others // not sure how to adjust it when it's inside the CPU? NES_CONTROL_PORT(config, m_ctrl1, nes_control_port1_devices, "joypad"); m_ctrl1->set_brightpixel_callback(FUNC(nes_state::bright_pixel)); NES_CONTROL_PORT(config, m_ctrl2, nes_control_port2_devices, "joypad"); m_ctrl2->set_brightpixel_callback(FUNC(nes_state::bright_pixel)); NES_CART_SLOT(config, m_cartslot, NTSC_APU_CLOCK, nes_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("nes"); SOFTWARE_LIST(config, "ade_list").set_original("nes_ade"); // Camerica/Codemasters Aladdin Deck Enhancer mini-carts SOFTWARE_LIST(config, "ntb_list").set_original("nes_ntbrom"); // Sunsoft Nantettate! Baseball mini-carts SOFTWARE_LIST(config, "kstudio_list").set_original("nes_kstudio"); // Bandai Karaoke Studio expansion carts SOFTWARE_LIST(config, "datach_list").set_original("nes_datach"); // Bandai Datach Joint ROM System mini-carts }
void nascom1_state::nascom1(machine_config &config) { nascom(config); Z80(config, m_maincpu, 16_MHz_XTAL / 8); m_maincpu->set_addrmap(AS_PROGRAM, &nascom1_state::nascom1_mem); m_maincpu->set_addrmap(AS_IO, &nascom1_state::nascom1_io); // software SOFTWARE_LIST(config, "snap_list").set_original("nascom_snap").set_filter("NASCOM1"); }
void gb_state::gbcolor(machine_config &config) { /* basic machine hardware */ LR35902(config, m_maincpu, XTAL(4'194'304)); // todo XTAL(8'388'000) m_maincpu->set_addrmap(AS_PROGRAM, &gb_state::gbc_map); m_maincpu->timer_cb().set(FUNC(gb_state::gb_timer_callback)); MCFG_MACHINE_START_OVERRIDE(gb_state,gbc) MCFG_MACHINE_RESET_OVERRIDE(gb_state,gbc) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(DMG_FRAMES_PER_SECOND); screen.set_vblank_time(0); screen.set_screen_update("ppu", FUNC(dmg_ppu_device::screen_update)); screen.set_palette(m_palette); // screen.set_size(20*8, 18*8); screen.set_size(458, 154); screen.set_visarea(0*8, 20*8-1, 0*8, 18*8-1); GFXDECODE(config, "gfxdecode", m_palette, gfxdecode_device::empty); PALETTE(config, m_palette, FUNC(gb_state::gbc_palette), 32768); CGB_PPU(config, m_ppu, m_maincpu); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); CGB04_APU(config, m_apu, XTAL(4'194'304)); m_apu->add_route(0, "lspeaker", 0.50); m_apu->add_route(1, "rspeaker", 0.50); /* internal ram */ RAM(config, RAM_TAG).set_default_size("48K"); /* 2 pages of 8KB VRAM, 8 pages of 4KB RAM */ /* cartslot */ GB_CART_SLOT(config, "gbslot", gb_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("gbcolor"); SOFTWARE_LIST(config, "gb_list").set_compatible("gameboy"); }
void acrnsys_state::acrnsys5(machine_config &config) { /* 6502A CPU Board */ a6502a(config); /* Acorn Bus - 7 Slot Backplane */ ACORN_BUS(config, m_bus, 0); m_bus->set_cputag(m_maincpu); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "32k"); // 32K ACORN_BUS_SLOT(config, "bus2", m_bus, acorn_bus_devices, "32k"); // 16K ACORN_BUS_SLOT(config, "bus3", m_bus, acorn_bus_devices, "vdu80"); ACORN_BUS_SLOT(config, "bus4", m_bus, acorn_bus_devices, "fdc"); ACORN_BUS_SLOT(config, "bus5", m_bus, acorn_bus_devices, "econet"); ACORN_BUS_SLOT(config, "bus6", m_bus, acorn_bus_devices, nullptr); /* Software lists */ SOFTWARE_LIST(config, "flop_list").set_original("acrnsys_flop"); SOFTWARE_LIST(config, "rom_list").set_original("acrnsys_rom"); }
void mc1000_state::mc1000(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 3579545); m_maincpu->set_addrmap(AS_PROGRAM, &mc1000_state::mc1000_mem); m_maincpu->set_addrmap(AS_OPCODES, &mc1000_state::mc1000_banking_mem); m_maincpu->set_addrmap(AS_IO, &mc1000_state::mc1000_io); /* timers */ timer_device &ne555clear(TIMER(config, "ne555clear")); ne555clear.configure_periodic(FUNC(mc1000_state::ne555_tick), attotime::from_hz(MC1000_NE555_FREQ)); ne555clear.config_param(CLEAR_LINE); timer_device &ne555assert(TIMER(config, "ne555assert")); ne555assert.configure_periodic(FUNC(mc1000_state::ne555_tick), attotime::from_hz(MC1000_NE555_FREQ)); ne555assert.set_start_delay(attotime::from_hz(MC1000_NE555_FREQ * 100 / MC1000_NE555_DUTY_CYCLE)); ne555assert.config_param(ASSERT_LINE); /* video hardware */ SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); MC6847_NTSC(config, m_vdg, XTAL(3'579'545)); m_vdg->hsync_wr_callback().set(FUNC(mc1000_state::hs_w)); m_vdg->fsync_wr_callback().set(FUNC(mc1000_state::fs_w)); m_vdg->input_callback().set(FUNC(mc1000_state::videoram_r)); m_vdg->set_screen(SCREEN_TAG); /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &ay8910(AY8910(config, AY8910_TAG, 3579545/2)); ay8910.set_flags(AY8910_SINGLE_OUTPUT); ay8910.set_resistors_load(RES_K(2.2), 0, 0); ay8910.port_b_read_callback().set(FUNC(mc1000_state::keydata_r)); ay8910.port_a_write_callback().set(FUNC(mc1000_state::keylatch_w)); ay8910.add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette->set_interface("mc1000_cass"); SOFTWARE_LIST(config, "cass_list").set_original("mc1000_cass"); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(mc1000_state::write_centronics_busy)); output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(latch); /* internal ram */ RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("48K"); }
void z80ne_state::z80netb(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80netb_mem); m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80net_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state,z80netb) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state,z80netb) AY31015(config, m_uart); CLOCK(config, m_uart_clock, 4800); m_uart_clock->signal_handler().set(FUNC(z80ne_state::lx385_uart_tx_clock_w)); m_uart_clock->signal_handler().append(m_uart, FUNC(ay31015_device::write_rcp)); CASSETTE(config, m_cassette1); m_cassette1->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette1->set_interface("z80ne_cass"); CASSETTE(config, m_cassette2); m_cassette2->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette2->set_interface("z80ne_cass"); KR2376_ST(config, m_lx387_kr2376, 50000); m_lx387_kr2376->x<0>().set_ioport("X0"); m_lx387_kr2376->x<1>().set_ioport("X1"); m_lx387_kr2376->x<2>().set_ioport("X2"); m_lx387_kr2376->x<3>().set_ioport("X3"); m_lx387_kr2376->x<4>().set_ioport("X4"); m_lx387_kr2376->x<5>().set_ioport("X5"); m_lx387_kr2376->x<6>().set_ioport("X6"); m_lx387_kr2376->x<7>().set_ioport("X7"); m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r)); m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r)); /* video hardware */ SCREEN(config, "lx388", SCREEN_TYPE_RASTER); MC6847_PAL(config, m_vdg, 4.433619_MHz_XTAL); m_vdg->set_screen("lx388"); m_vdg->input_callback().set(FUNC(z80ne_state::lx388_mc6847_videoram_r)); // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND // other lines not connected config.set_default_layout(layout_z80netb); /* internal ram */ RAM(config, m_ram).set_default_size("32K").set_extra_options("1K"); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); }
void bw12_state::bw14(machine_config &config) { common(config); /* floppy drives */ FLOPPY_CONNECTOR(config, UPD765_TAG ":1", bw14_floppies, "525dd", bw12_state::bw14_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":2", bw14_floppies, "525dd", bw12_state::bw14_floppy_formats); // software lists SOFTWARE_LIST(config, "flop_list").set_original("bw14"); /* internal ram */ RAM(config, RAM_TAG).set_default_size("128K"); }
void gb_state::supergb(machine_config &config) { /* basic machine hardware */ LR35902(config, m_maincpu, 4295454); /* 4.295454 MHz, derived from SNES xtal */ m_maincpu->set_addrmap(AS_PROGRAM, &gb_state::sgb_map); m_maincpu->timer_cb().set(FUNC(gb_state::gb_timer_callback)); m_maincpu->set_halt_bug(true); MCFG_MACHINE_START_OVERRIDE(gb_state, sgb) MCFG_MACHINE_RESET_OVERRIDE(gb_state, sgb) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_physical_aspect(4, 3); // runs on a TV, not an LCD screen.set_refresh_hz(SGB_FRAMES_PER_SECOND); screen.set_vblank_time(0); screen.set_screen_update("ppu", FUNC(dmg_ppu_device::screen_update)); screen.set_palette(m_palette); screen.set_size(32*8, 28*8); screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); GFXDECODE(config, "gfxdecode", m_palette, gfxdecode_device::empty); PALETTE(config, m_palette, FUNC(gb_state::sgb_palette), 32768); SGB_PPU(config, m_ppu, m_maincpu); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); DMG_APU(config, m_apu, 4295454); m_apu->add_route(0, "lspeaker", 0.50); m_apu->add_route(1, "rspeaker", 0.50); /* cartslot */ GB_CART_SLOT(config, m_cartslot, gb_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("gameboy"); SOFTWARE_LIST(config, "gbc_list").set_compatible("gbcolor"); }
void macpci_state::pippin(machine_config &config) { /* basic machine hardware */ PPC603(config, m_maincpu, 66000000); m_maincpu->set_addrmap(AS_PROGRAM, &macpci_state::pippin_mem); /* video hardware */ 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"); 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(); cdda_device &cdda(CDDA(config, "cdda")); cdda.add_route(0, "lspeaker", 1.00); cdda.add_route(1, "rspeaker", 1.00); 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); RAM(config, m_ram); m_ram->set_default_size("32M"); 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)); //scc8530_t &scc(SCC8530(config, "scc", C7M)); //scc.intrq_callback().set(FUNC(macpci_state::set_scc_interrupt)); 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"); }
void spectrum_state::spectrum_common(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, X1 / 4); /* This is verified only for the ZX Spectrum. Other clones are reported to have different clocks */ m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::spectrum_mem); m_maincpu->set_addrmap(AS_IO, &spectrum_state::spectrum_io); m_maincpu->set_addrmap(AS_OPCODES, &spectrum_state::spectrum_fetch); m_maincpu->set_vblank_int("screen", FUNC(spectrum_state::spec_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum ) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(X1 / 2, 448, 0, 352, 312, 0, 296); m_screen->set_screen_update(FUNC(spectrum_state::screen_update_spectrum)); m_screen->screen_vblank().set(FUNC(spectrum_state::screen_vblank_spectrum)); m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(spectrum_state::spectrum_palette), 16); GFXDECODE(config, "gfxdecode", "palette", gfx_spectrum); MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum) /* sound hardware */ SPEAKER(config, "mono").front_center(); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* expansion port */ SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, "kempjoy"); m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); /* devices */ snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot")); snapshot.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(spectrum_state, spectrum), this), "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx"); quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(spectrum_state, spectrum), this), "raw,scr", attotime::from_seconds(2)); // The delay prevents the screen from being cleared by the RAM test at boot CASSETTE(config, m_cassette); m_cassette->set_formats(tzx_cassette_formats); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED); m_cassette->set_interface("spectrum_cass"); SOFTWARE_LIST(config, "cass_list").set_original("spectrum_cass"); }
INPUT_PORTS_END void picno_state::picno(machine_config &config) { /* basic machine hardware */ H83002(config, m_maincpu, XTAL(20'000'000)); /* TODO: correct CPU type (H8/532), crystal is a guess, divided by 2 in the cpu */ m_maincpu->set_addrmap(AS_PROGRAM, &picno_state::mem_map); m_maincpu->set_addrmap(AS_IO, &picno_state::io_map); //MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") // no speaker in the unit, but there's a couple of sockets on the back //MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) //MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "picno_cart"); SOFTWARE_LIST(config, "cart_list").set_original("picno"); }
void crvision_state::creativision(machine_config &config) { // basic machine hardware M6502(config, m_maincpu, XTAL(2'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &crvision_state::crvision_map); // devices PIA6821(config, m_pia, 0); m_pia->readpa_handler().set(FUNC(crvision_state::pia_pa_r)); m_pia->readpb_handler().set(FUNC(crvision_state::pia_pb_r)); m_pia->writepa_handler().set(FUNC(crvision_state::pia_pa_w)); m_pia->writepb_handler().set(SN76489_TAG, FUNC(sn76496_base_device::write)); CASSETTE(config, m_cassette); m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7)); INPUT_BUFFER(config, "cent_status_in", 0); OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); OUTPUT_LATCH(config, "cent_ctrl_out").bit_handler<4>().set(m_centronics, FUNC(centronics_device::write_strobe)); // sound hardware SPEAKER(config, "mono").front_center(); SN76489A(config, m_psg, XTAL(2'000'000)); m_psg->ready_cb().set(m_pia, FUNC(pia6821_device::cb1_w)); m_psg->add_route(ALL_OUTPUTS, "mono", 1.00); WAVE(config, "wave", m_cassette).add_route(1, "mono", 0.25); // cartridge CRVISION_CART_SLOT(config, m_cart, crvision_cart, nullptr); // internal ram RAM(config, m_ram); m_ram->set_default_size("1K"); // main RAM m_ram->set_extra_options("15K"); // 16K expansion (lower 14K available only, upper 2K shared with BIOS ROM) // software lists SOFTWARE_LIST(config, "cart_list").set_original("crvision"); }
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"); }
void tdv2324_state::tdv2324(machine_config &config) { // basic system hardware I8085A(config, m_maincpu, 8700000/2); // ??? m_maincpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_mem); m_maincpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_io); I8085A(config, m_subcpu, 8000000/2); // ??? m_subcpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_sub_mem); m_subcpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_sub_io); M6802(config, m_fdccpu, 8000000/2); // ??? m_fdccpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_fdc_mem); // video hardware screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green())); screen.set_refresh_hz(50); screen.set_screen_update(FUNC(tdv2324_state::screen_update)); screen.set_size(800, 400); screen.set_visarea(0, 800-1, 0, 400-1); PALETTE(config, "palette", palette_device::MONOCHROME); TMS9927(config, m_tms, 25.39836_MHz_XTAL / 8).set_char_width(8); // devices PIC8259(config, m_pic, 0); PIT8253(config, m_pit0, 0); PIT8253(config, m_pit1, 0); Z80SIO2(config, MK3887N4_TAG, 8000000/2); FD1797(config, FD1797PL02_TAG, 8000000/4); FLOPPY_CONNECTOR(config, FD1797PL02_TAG":0", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, FD1797PL02_TAG":1", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats); // internal ram RAM(config, RAM_TAG).set_default_size("64K"); // software list SOFTWARE_LIST(config, "flop_list").set_original("tdv2324"); }
void gamate_state::gamate(machine_config &config) { M6502(config, m_maincpu, 4433000/2); // NCR 65CX02 m_maincpu->set_addrmap(AS_PROGRAM, &gamate_state::gamate_mem); GAMATE_VIDEO(config, "video", 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); // Stereo headphone output SPEAKER(config, "rspeaker").front_right(); AY8910(config, m_ay, 4433000 / 4); // AY compatible, no actual AY chip present m_ay->add_route(0, "lspeaker", 0.5); m_ay->add_route(1, "rspeaker", 0.5); m_ay->add_route(2, "lspeaker", 0.25); m_ay->add_route(2, "rspeaker", 0.25); GAMATE_CART_SLOT(config, m_cartslot, gamate_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("gamate"); }
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"); }
void z80ne_state::z80net(machine_config &config) { z80ne(config); m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80net_mem); m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80net_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state, z80net ) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state, z80net ) KR2376_ST(config, m_lx387_kr2376, 50000); m_lx387_kr2376->x<0>().set_ioport("X0"); m_lx387_kr2376->x<1>().set_ioport("X1"); m_lx387_kr2376->x<2>().set_ioport("X2"); m_lx387_kr2376->x<3>().set_ioport("X3"); m_lx387_kr2376->x<4>().set_ioport("X4"); m_lx387_kr2376->x<5>().set_ioport("X5"); m_lx387_kr2376->x<6>().set_ioport("X6"); m_lx387_kr2376->x<7>().set_ioport("X7"); m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r)); m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r)); /* video hardware */ SCREEN(config, "lx388", SCREEN_TYPE_RASTER); MC6847_PAL(config, m_vdg, 4.433619_MHz_XTAL); m_vdg->set_screen("lx388"); m_vdg->input_callback().set(FUNC(z80ne_state::lx388_mc6847_videoram_r)); // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND // other lines not connected config.set_default_layout(layout_z80net); /* internal ram */ m_ram->set_default_size("32K").set_extra_options("1K"); SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); }