void czk80_state::czk80(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &czk80_state::czk80_mem); m_maincpu->set_addrmap(AS_IO, &czk80_state::czk80_io); m_maincpu->set_daisy_config(daisy_chain); GENERIC_TERMINAL(config, m_terminal, 0); m_terminal->set_keyboard_callback(FUNC(czk80_state::kbd_put)); UPD765A(config, m_fdc, 8_MHz_XTAL, true, true); FLOPPY_CONNECTOR(config, "fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats); z80ctc_device& ctc(Z80CTC(config, "ctc", 16_MHz_XTAL / 4)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); ctc.zc_callback<0>().set(FUNC(czk80_state::ctc_z0_w)); ctc.zc_callback<1>().set(FUNC(czk80_state::ctc_z1_w)); ctc.zc_callback<2>().set(FUNC(czk80_state::ctc_z2_w)); z80dart_device& dart(Z80DART(config, "dart", 16_MHz_XTAL / 4)); //dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); //dart.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); //dart.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); dart.out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); z80pio_device& pio(Z80PIO(config, "pio", 16_MHz_XTAL / 4)); pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); }
int workflow::execute(const int argc, const char* argv[]) { try { const auto o(generate_darting_options(argc, argv)); /* * Can only happen if the options are valid but do not * require any action. */ if (!o) return 0; const auto& s(*o); initialise_model_name(s); initialise_logging(s); dart(s); } catch (const darter::parser_validation_error& e) { /* * Log known not to be initialised as we are still parsing * command line options. */ std::cerr << usage_error_msg << e.what() << std::endl << more_information << std::endl; return 1; } catch (const std::exception& e) { report_exception(e); return 1; } catch(...) { report_exception(); return 1; } return 0; }
void pulsar_state::pulsar(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &pulsar_state::mem_map); m_maincpu->set_addrmap(AS_IO, &pulsar_state::io_map); m_maincpu->set_daisy_config(daisy_chain_intf); /* Devices */ i8255_device &ppi(I8255(config, "ppi")); ppi.out_pa_callback().set(FUNC(pulsar_state::ppi_pa_w)); ppi.out_pb_callback().set(FUNC(pulsar_state::ppi_pb_w)); ppi.in_pc_callback().set(FUNC(pulsar_state::ppi_pc_r)); ppi.out_pc_callback().set(FUNC(pulsar_state::ppi_pc_w)); MSM5832(config, "rtc", 32.768_kHz_XTAL); z80dart_device& dart(Z80DART(config, "dart", 4_MHz_XTAL)); dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); dart.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); dart.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); rs232.rxd_handler().set("dart", FUNC(z80dart_device::rxa_w)); rs232.cts_handler().set("dart", FUNC(z80dart_device::ctsa_w)); rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); com8116_device &brg(COM8116(config, "brg", 5.0688_MHz_XTAL)); // Schematic has the labels for FT and FR the wrong way around, but the pin numbers are correct. brg.fr_handler().set("dart", FUNC(z80dart_device::txca_w)); brg.fr_handler().append("dart", FUNC(z80dart_device::rxca_w)); brg.ft_handler().set("dart", FUNC(z80dart_device::txcb_w)); brg.ft_handler().append("dart", FUNC(z80dart_device::rxcb_w)); FD1797(config, m_fdc, 4_MHz_XTAL / 2); FLOPPY_CONNECTOR(config, "fdc:0", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats).enable_sound(true); }