void lwriter_state::lwriter(machine_config &config) { M68000(config, m_maincpu, CPU_CLK); m_maincpu->set_addrmap(AS_PROGRAM, &lwriter_state::maincpu_map); SCC8530N(config, m_scc, CPU_CLK); m_scc->configure_channels(RXC_CLK, 0, RXC_CLK, 0); /* Port A */ m_scc->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); m_scc->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); /* Port B */ m_scc->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); m_scc->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); /* Interrupt */ m_scc->out_int_callback().set("via", FUNC(via6522_device::write_ca1)); //m_scc->out_int_callback().set(FUNC(lwriter_state::scc_int)); rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal")); rs232a.rxd_handler().set("scc", FUNC(scc8530_device::rxa_w)); rs232a.cts_handler().set("scc", FUNC(scc8530_device::ctsa_w)); rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal")); rs232b.rxd_handler().set("scc", FUNC(scc8530_device::rxb_w)); rs232b.cts_handler().set("scc", FUNC(scc8530_device::ctsb_w)); #if TPI TPI6525(config, "tpi", 0); #else VIA6522(config, m_via, CPU_CLK/10); // 68000 E clock presumed m_via->readpa_handler().set(FUNC(lwriter_state::via_pa_r)); m_via->readpb_handler().set(FUNC(lwriter_state::via_pb_r)); m_via->writepa_handler().set(FUNC(lwriter_state::via_pa_w)); m_via->writepb_handler().set(FUNC(lwriter_state::via_pb_w)); m_via->cb1_handler().set(FUNC(lwriter_state::via_cb1_w)); m_via->ca2_handler().set(FUNC(lwriter_state::via_ca2_w)); m_via->cb2_handler().set(FUNC(lwriter_state::via_cb2_w)); m_via->irq_handler().set(FUNC(lwriter_state::via_int_w)); #endif }
void ioc2_device::device_add_mconfig(machine_config &config) { SCC85230(config, m_scc, SCC_PCLK); m_scc->configure_channels(SCC_RXA_CLK.value(), SCC_TXA_CLK.value(), SCC_RXB_CLK.value(), SCC_TXB_CLK.value()); m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc->out_dtra_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_rts)); m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); m_scc->out_dtrb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_rts)); m_scc->out_int_callback().set(FUNC(ioc2_device::duart_int_w)); rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); rs232a.cts_handler().set(m_scc, FUNC(scc85230_device::ctsa_w)); rs232a.dcd_handler().set(m_scc, FUNC(scc85230_device::dcda_w)); rs232a.rxd_handler().set(m_scc, FUNC(scc85230_device::rxa_w)); rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); rs232b.cts_handler().set(m_scc, FUNC(scc85230_device::ctsb_w)); rs232b.dcd_handler().set(m_scc, FUNC(scc85230_device::dcdb_w)); rs232b.rxd_handler().set(m_scc, FUNC(scc85230_device::rxb_w)); PC_LPT(config, m_pi1); KBDC8042(config, m_kbdc); m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_PS2); m_kbdc->system_reset_callback().set_inputline(m_maincpu, INPUT_LINE_RESET); m_kbdc->input_buffer_full_callback().set(FUNC(ioc2_device::kbdc_int_w)); PIT8254(config, m_pit, 0); m_pit->set_clk<0>(1000000); m_pit->set_clk<1>(1000000); m_pit->set_clk<2>(1000000); m_pit->out_handler<0>().set(FUNC(ioc2_device::timer0_int)); m_pit->out_handler<1>().set(FUNC(ioc2_device::timer1_int)); m_pit->out_handler<2>().set(m_kbdc, FUNC(kbdc8042_device::write_out2)); }
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"); }