void z80ne_state::z80ne(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, Z80NE_CPU_SPEED_HZ); m_maincpu->set_addrmap(AS_PROGRAM, &z80ne_state::z80ne_mem); m_maincpu->set_addrmap(AS_IO, &z80ne_state::z80ne_io); MCFG_MACHINE_START_OVERRIDE(z80ne_state,z80ne) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state,z80ne) 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"); config.set_default_layout(layout_z80ne); /* internal ram */ RAM(config, m_ram).set_default_size("32K"); // all known tapes require LX.388 expansion //SOFTWARE_LIST(config, "cass_list").set_original("z80ne_cass"); }
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 vt100_keyboard_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "mono").front_center(); BEEP(config, m_speaker, 786); // 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz m_speaker->add_route(ALL_OUTPUTS, "mono", 0.50); AY31015(config, m_uart); m_uart->write_so_callback().set(FUNC(vt100_keyboard_device::signal_out_w)); RIPPLE_COUNTER(config, m_scan_counter); // 2x 74LS93 m_scan_counter->set_stages(8); m_scan_counter->count_out_cb().set(FUNC(vt100_keyboard_device::key_scan_w)); }
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"); }
INPUT_PORTS_END //************************************************************************** // MACHINE DRIVERS //************************************************************************** void nascom_state::nascom(machine_config &config) { // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(50); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_size(48 * 8, 16 * 16); m_screen->set_visarea(0, 48 * 8 - 1, 0, 16 * 16 - 1); m_screen->set_screen_update(FUNC(nascom1_state::screen_update_nascom)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_nascom1); PALETTE(config, m_palette, palette_device::MONOCHROME); // uart AY31015(config, m_hd6402); m_hd6402->set_tx_clock((16_MHz_XTAL / 16) / 256); m_hd6402->set_rx_clock((16_MHz_XTAL / 16) / 256); m_hd6402->read_si_callback().set(FUNC(nascom_state::nascom1_hd6402_si)); m_hd6402->write_so_callback().set(FUNC(nascom_state::nascom1_hd6402_so)); // cassette is connected to the uart CASSETTE(config, m_cassette); m_cassette->set_interface("nascom_cass"); // pio Z80PIO(config, "z80pio", 16_MHz_XTAL / 8); // internal extra ram RAM(config, m_ram).set_default_size("48K").set_extra_options("8K,16K,32K"); // devices snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", 0)); snapshot.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(nascom_state, nascom1), this), "nas", 0.5); snapshot.set_interface("nascom_snap"); snapshot_image_device &snapchar(SNAPSHOT(config, "snapchar", 0)); snapchar.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(nascom_state, charrom), this), "chr", 0.5); snapchar.set_interface("nascom_char"); }