void ts802_state::ts802(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &ts802_state::ts802_mem); m_maincpu->set_addrmap(AS_IO, &ts802_state::ts802_io); //m_maincpu->set_daisy_config(daisy_chain_intf); // causes problems /* Devices */ GENERIC_TERMINAL(config, m_terminal, 0); m_terminal->set_keyboard_callback(FUNC(ts802_state::kbd_put)); z80dma_device& dma(Z80DMA(config, "dma", 16_MHz_XTAL / 4)); dma.out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); dma.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); dma.in_mreq_callback().set(FUNC(ts802_state::memory_read_byte)); dma.out_mreq_callback().set(FUNC(ts802_state::memory_write_byte)); dma.in_iorq_callback().set(FUNC(ts802_state::io_read_byte)); dma.out_iorq_callback().set(FUNC(ts802_state::io_write_byte)); z80dart_device& dart1(Z80DART(config, "dart1", 16_MHz_XTAL / 4)); dart1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); z80dart_device& dart2(Z80DART(config, "dart2", 16_MHz_XTAL / 4)); dart2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); z80ctc_device& ctc(Z80CTC(config, "ctc", 16_MHz_XTAL / 4)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); FD1793(config, "fdc", 4'000'000 / 2); // unknown clock FLOPPY_CONNECTOR(config, "fdc:0", ts802_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); }
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); }
void mtx_state::rs128(machine_config &config) { mtx512(config); /* basic machine hardware */ m_maincpu->set_addrmap(AS_IO, &mtx_state::rs128_io); m_maincpu->set_daisy_config(rs128_daisy_chain); /* devices */ Z80DART(config, m_z80dart, XTAL(4'000'000)); m_z80dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* internal ram */ m_ram->set_default_size("128K").set_extra_options("192K,320K,448K,512K"); }
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); }
m_dma->in_mreq_callback().set(FUNC(altos5_state::memory_read_byte)); m_dma->out_mreq_callback().set(FUNC(altos5_state::memory_write_byte)); m_dma->in_iorq_callback().set(FUNC(altos5_state::io_read_byte)); m_dma->out_iorq_callback().set(FUNC(altos5_state::io_write_byte)); Z80PIO(config, m_pio0, 8_MHz_XTAL / 2); m_pio0->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio0->in_pa_callback().set(FUNC(altos5_state::port08_r)); m_pio0->out_pa_callback().set(FUNC(altos5_state::port08_w)); m_pio0->in_pb_callback().set(FUNC(altos5_state::port09_r)); m_pio0->out_pb_callback().set(FUNC(altos5_state::port09_w)); z80pio_device& pio1(Z80PIO(config, "pio1", 8_MHz_XTAL / 2)); pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); z80dart_device& dart(Z80DART(config, "dart", 8_MHz_XTAL / 2)); // Channel A - console #3 // Channel B - printer dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); z80sio_device& sio(Z80SIO(config, "sio", 8_MHz_XTAL / 2)); // Channel A - console #2 // WRDY connects to (altos5_state, fdc_intrq_w) // Channel B - console #1 sio.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); sio.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); sio.out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); z80ctc_device &ctc(Z80CTC(config, "ctc", 8_MHz_XTAL / 2)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
void bullet_state::bullet(machine_config &config) { // basic machine hardware Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &bullet_state::bullet_mem); m_maincpu->set_addrmap(AS_IO, &bullet_state::bullet_io); m_maincpu->set_daisy_config(daisy_chain); // devices Z80CTC(config, m_ctc, 16_MHz_XTAL / 4); m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc->zc_callback<0>().set(FUNC(bullet_state::dart_rxtxca_w)); m_ctc->zc_callback<1>().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3)); TIMER(config, "ctc").configure_periodic(FUNC(bullet_state::ctc_tick), attotime::from_hz(4.9152_MHz_XTAL / 4)); Z80DART(config, m_dart, 16_MHz_XTAL / 4); m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); m_dart->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); m_dart->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); m_dart->out_wrdya_callback().set(FUNC(bullet_state::dartardy_w)); m_dart->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); m_dart->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); m_dart->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); m_dart->out_wrdyb_callback().set(FUNC(bullet_state::dartbrdy_w)); m_dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); Z80DMA(config, m_dmac, 16_MHz_XTAL / 4); m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); m_dmac->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_dmac->in_mreq_callback().set(FUNC(bullet_state::dma_mreq_r)); m_dmac->out_mreq_callback().set(FUNC(bullet_state::dma_mreq_w)); m_dmac->in_iorq_callback().set(FUNC(bullet_state::io_read_byte)); m_dmac->out_iorq_callback().set(FUNC(bullet_state::io_write_byte)); z80pio_device& pio(Z80PIO(config, Z80PIO_TAG, 16_MHz_XTAL / 4)); pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); pio.out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); pio.in_pb_callback().set(FUNC(bullet_state::pio_pb_r)); MB8877(config, m_fdc, 16_MHz_XTAL / 16); m_fdc->intrq_wr_callback().set(m_dart, FUNC(z80dart_device::dcda_w)); m_fdc->drq_wr_callback().set(FUNC(bullet_state::fdc_drq_w)); FLOPPY_CONNECTOR(config, MB8877_TAG":0", bullet_525_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":1", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":2", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":3", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":4", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":5", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":6", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":7", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(bullet_state::write_centronics_busy)); m_centronics->perror_handler().set(FUNC(bullet_state::write_centronics_perror)); m_centronics->select_handler().set(FUNC(bullet_state::write_centronics_select)); m_centronics->fault_handler().set(FUNC(bullet_state::write_centronics_fault)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); // software lists SOFTWARE_LIST(config, "flop_list").set_original("wmbullet"); // internal ram RAM(config, RAM_TAG).set_default_size("128K"); }
MCFG_DEVICE_PROGRAM_MAP(dmax8000_mem) MCFG_DEVICE_IO_MAP(dmax8000_io) MCFG_MACHINE_RESET_OVERRIDE(dmax8000_state, dmax8000) z80ctc_device &ctc(Z80CTC(config, "ctc", 4_MHz_XTAL)); ctc.set_clk<0>(4_MHz_XTAL / 2); // 2MHz ctc.zc_callback<0>().set("dart1", FUNC(z80dart_device::rxca_w)); ctc.zc_callback<0>().append("dart1", FUNC(z80dart_device::txca_w)); ctc.zc_callback<0>().append("dart2", FUNC(z80dart_device::rxca_w)); ctc.zc_callback<0>().append("dart2", FUNC(z80dart_device::txca_w)); ctc.set_clk<1>(4_MHz_XTAL / 2); // 2MHz ctc.zc_callback<1>().set("dart2", FUNC(z80dart_device::rxtxcb_w)); ctc.set_clk<2>(4_MHz_XTAL / 2); // 2MHz ctc.zc_callback<2>().set("dart1", FUNC(z80dart_device::rxtxcb_w)); z80dart_device& dart1(Z80DART(config, "dart1", 4'000'000)); // A = terminal; B = aux dart1.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); dart1.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); dart1.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); rs232.rxd_handler().set("dart1", FUNC(z80dart_device::rxa_w)); rs232.dcd_handler().set("dart1", FUNC(z80dart_device::dcda_w)); rs232.ri_handler().set("dart1", FUNC(z80dart_device::ria_w)); rs232.cts_handler().set("dart1", FUNC(z80dart_device::ctsa_w)); Z80DART(config, "dart2", 4'000'000); // RS232 ports z80pio_device& pio1(Z80PIO(config, "pio1", 4'000'000)); pio1.out_pa_callback().set(FUNC(dmax8000_state::port0c_w)); pio1.out_pb_callback().set(FUNC(dmax8000_state::port0d_w));