FLOPPY_FORMATS_END void fdc37c93x_device::device_add_mconfig(machine_config &config) { // floppy disc controller smc37c78_device &fdcdev(SMC37C78(config, floppy_controller_fdcdev, 24'000'000)); fdcdev.intrq_wr_callback().set(FUNC(fdc37c93x_device::irq_floppy_w)); fdcdev.drq_wr_callback().set(FUNC(fdc37c93x_device::drq_floppy_w)); FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", fdc37c93x_device::floppy_formats); FLOPPY_CONNECTOR(config, "fdc:1", pc_hd_floppies, "35hd", fdc37c93x_device::floppy_formats); // parallel port PC_LPT(config, pc_lpt_lptdev); pc_lpt_lptdev->irq_handler().set(FUNC(fdc37c93x_device::irq_parallel_w)); // serial ports NS16450(config, pc_serial1_comdev, XTAL(1'843'200)); // or NS16550 ? pc_serial1_comdev->out_int_callback().set(FUNC(fdc37c93x_device::irq_serial1_w)); pc_serial1_comdev->out_tx_callback().set(FUNC(fdc37c93x_device::txd_serial1_w)); pc_serial1_comdev->out_dtr_callback().set(FUNC(fdc37c93x_device::dtr_serial1_w)); pc_serial1_comdev->out_rts_callback().set(FUNC(fdc37c93x_device::rts_serial1_w)); NS16450(config, pc_serial2_comdev, XTAL(1'843'200)); pc_serial2_comdev->out_int_callback().set(FUNC(fdc37c93x_device::irq_serial2_w)); pc_serial2_comdev->out_tx_callback().set(FUNC(fdc37c93x_device::txd_serial2_w)); pc_serial2_comdev->out_dtr_callback().set(FUNC(fdc37c93x_device::dtr_serial2_w)); pc_serial2_comdev->out_rts_callback().set(FUNC(fdc37c93x_device::rts_serial2_w)); // RTC ds12885_device &rtc(DS12885(config, "rtc")); rtc.irq().set(FUNC(fdc37c93x_device::irq_rtc_w)); rtc.set_century_index(0x32); // keyboard KBDC8042(config, m_kbdc); m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_PS2); m_kbdc->input_buffer_full_callback().set(FUNC(fdc37c93x_device::irq_keyboard_w)); m_kbdc->system_reset_callback().set(FUNC(fdc37c93x_device::kbdp20_gp20_reset_w)); m_kbdc->gate_a20_callback().set(FUNC(fdc37c93x_device::kbdp21_gp25_gatea20_w)); }
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)); }
serport.dsr_handler().set("ins8250", FUNC(ins8250_uart_device::dsr_w)); serport.ri_handler().set("ins8250", FUNC(ins8250_uart_device::ri_w)); serport.cts_handler().set("ins8250", FUNC(ins8250_uart_device::cts_w)); /* video hardware */ PCVIDEO_PCJR(config, "pcvideo_pcjr", 0).set_screen("pcvideo_pcjr:screen"); GFXDECODE(config, "gfxdecode", "pcvideo_pcjr:palette", gfx_pcjr); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80); SN76496(config, "sn76496", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mono", 0.80); /* printer */ pc_lpt_device &lpt0(PC_LPT(config, "lpt_0")); lpt0.irq_handler().set(m_pic8259, FUNC(pic8259_device::ir7_w)); PC_JOY(config, "pc_joy"); /* cassette */ CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); UPD765A(config, m_fdc, 8'000'000, false, false); FLOPPY_CONNECTOR(config, "fdc:0", pcjr_floppies, "525dd", isa8_fdc_device::floppy_formats, true); PC_KEYB(config, m_keyboard); m_keyboard->keypress().set(FUNC(pcjr_state::keyb_interrupt));