void cs4031_device::device_add_mconfig(machine_config &config) { AM9517A(config, m_dma1, 0); m_dma1->out_hreq_callback().set(m_dma2, FUNC(am9517a_device::dreq0_w)); m_dma1->out_eop_callback().set(FUNC(cs4031_device::dma1_eop_w)); m_dma1->in_memr_callback().set(FUNC(cs4031_device::dma_read_byte)); m_dma1->out_memw_callback().set(FUNC(cs4031_device::dma_write_byte)); m_dma1->in_ior_callback<0>().set(FUNC(cs4031_device::dma1_ior0_r)); m_dma1->in_ior_callback<1>().set(FUNC(cs4031_device::dma1_ior1_r)); m_dma1->in_ior_callback<2>().set(FUNC(cs4031_device::dma1_ior2_r)); m_dma1->in_ior_callback<3>().set(FUNC(cs4031_device::dma1_ior3_r)); m_dma1->out_iow_callback<0>().set(FUNC(cs4031_device::dma1_iow0_w)); m_dma1->out_iow_callback<1>().set(FUNC(cs4031_device::dma1_iow1_w)); m_dma1->out_iow_callback<2>().set(FUNC(cs4031_device::dma1_iow2_w)); m_dma1->out_iow_callback<3>().set(FUNC(cs4031_device::dma1_iow3_w)); m_dma1->out_dack_callback<0>().set(FUNC(cs4031_device::dma1_dack0_w)); m_dma1->out_dack_callback<1>().set(FUNC(cs4031_device::dma1_dack1_w)); m_dma1->out_dack_callback<2>().set(FUNC(cs4031_device::dma1_dack2_w)); m_dma1->out_dack_callback<3>().set(FUNC(cs4031_device::dma1_dack3_w)); AM9517A(config, m_dma2, 0); m_dma2->out_hreq_callback().set(FUNC(cs4031_device::dma2_hreq_w)); m_dma2->in_memr_callback().set(FUNC(cs4031_device::dma_read_word)); m_dma2->out_memw_callback().set(FUNC(cs4031_device::dma_write_word)); m_dma2->in_ior_callback<1>().set(FUNC(cs4031_device::dma2_ior1_r)); m_dma2->in_ior_callback<2>().set(FUNC(cs4031_device::dma2_ior2_r)); m_dma2->in_ior_callback<3>().set(FUNC(cs4031_device::dma2_ior3_r)); m_dma2->out_iow_callback<1>().set(FUNC(cs4031_device::dma2_iow1_w)); m_dma2->out_iow_callback<2>().set(FUNC(cs4031_device::dma2_iow2_w)); m_dma2->out_iow_callback<3>().set(FUNC(cs4031_device::dma2_iow3_w)); m_dma2->out_dack_callback<0>().set(FUNC(cs4031_device::dma2_dack0_w)); m_dma2->out_dack_callback<1>().set(FUNC(cs4031_device::dma2_dack1_w)); m_dma2->out_dack_callback<2>().set(FUNC(cs4031_device::dma2_dack2_w)); m_dma2->out_dack_callback<3>().set(FUNC(cs4031_device::dma2_dack3_w)); PIC8259(config, m_intc1, 0); m_intc1->out_int_callback().set(FUNC(cs4031_device::intc1_int_w)); m_intc1->in_sp_callback().set_constant(1); m_intc1->read_slave_ack_callback().set(FUNC(cs4031_device::intc1_slave_ack_r)); PIC8259(config, m_intc2, 0); m_intc2->out_int_callback().set(m_intc1, FUNC(pic8259_device::ir2_w)); m_intc2->in_sp_callback().set_constant(0); PIT8254(config, m_ctc, 0); m_ctc->set_clk<0>(XTAL(14'318'181) / 12.0); m_ctc->out_handler<0>().set(m_intc1, FUNC(pic8259_device::ir0_w)); m_ctc->set_clk<1>(XTAL(14'318'181) / 12.0); m_ctc->out_handler<1>().set(FUNC(cs4031_device::ctc_out1_w)); m_ctc->set_clk<2>(XTAL(14'318'181) / 12.0); m_ctc->out_handler<2>().set(FUNC(cs4031_device::ctc_out2_w)); DS12885(config, m_rtc); m_rtc->irq().set(m_intc2, FUNC(pic8259_device::ir0_w)); m_rtc->set_century_index(0x32); }
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)); }
MCFG_DEVICE_IO_MAP(calchase_io) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) pcat_common(config); ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true)); ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w)); MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0) MCFG_PCI_BUS_LEGACY_DEVICE(0, DEVICE_SELF, calchase_state, intel82439tx_pci_r, intel82439tx_pci_w) MCFG_PCI_BUS_LEGACY_DEVICE(7, DEVICE_SELF, calchase_state, intel82371ab_pci_r, intel82371ab_pci_w) /* video hardware */ pcvideo_trident_vga(config); ds12885_device &rtc(DS12885(config.replace(), "rtc")); rtc.irq().set("pic8259_2", FUNC(pic8259_device::ir0_w)); rtc.set_century_index(0x32); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); DAC_12BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC DAC_12BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.set_output(5.0); vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT); MACHINE_CONFIG_END MACHINE_CONFIG_START(calchase_state::hostinv)