void dsb46_state::dsb46(machine_config &config) { // basic machine hardware Z80(config, m_maincpu, 24_MHz_XTAL / 6); m_maincpu->set_addrmap(AS_PROGRAM, &dsb46_state::dsb46_mem); m_maincpu->set_addrmap(AS_IO, &dsb46_state::dsb46_io); m_maincpu->set_daisy_config(daisy_chain); /* Devices */ z80sio_device& sio(Z80SIO(config, "sio", 24_MHz_XTAL / 6)); sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.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("sio", FUNC(z80sio_device::rxa_w)); rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w)); z80ctc_device &ctc1(Z80CTC(config, "ctc1", 24_MHz_XTAL / 6)); ctc1.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); ctc1.set_clk<0>(1.8432_MHz_XTAL); ctc1.zc_callback<0>().set("sio", FUNC(z80sio_device::rxca_w)); ctc1.zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w)); ctc1.set_clk<2>(1.8432_MHz_XTAL); ctc1.zc_callback<2>().set("sio", FUNC(z80sio_device::rxcb_w)); ctc1.zc_callback<2>().append("sio", FUNC(z80sio_device::txcb_w)); }
void vdm7932x_state::vdm7932x(machine_config &config) // all clocks unverified { Z80(config, m_maincpu, 24.0734_MHz_XTAL / 8); // UA880D m_maincpu->set_addrmap(AS_PROGRAM, &vdm7932x_state::mem_map); m_maincpu->set_addrmap(AS_IO, &vdm7932x_state::io_map); m_maincpu->set_daisy_config(daisy_chain); I8031(config, m_subcpu, 24.0734_MHz_XTAL / 4); // Intel P8031AH (for keyboard?) m_subcpu->port_in_cb<3>().set(FUNC(vdm7932x_state::i8031_p3_r)); m_subcpu->set_addrmap(AS_PROGRAM, &vdm7932x_state::sub_map); m_subcpu->set_addrmap(AS_IO, &vdm7932x_state::subx_map); PIT8253(config, "pit", 0); // UM8253-5 z80ctc_device &ctc(Z80CTC(config, "ctc", 24.0734_MHz_XTAL / 8)); // UA857D ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); z80sio_device &sio(Z80SIO(config, "sio", 24.0734_MHz_XTAL / 8)); // UA8560D sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); i8255_device &ppi1(I8255A(config, "ppi1")); // КР580ВВ55А (on separate card) ppi1.out_pc_callback().set(FUNC(vdm7932x_state::ppi1_pc_w)); I8255A(config, "ppi2"); // КР580ВВ55А (on separate card) }
void sys2900_state::sys2900(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(8'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &sys2900_state::mem_map); m_maincpu->set_addrmap(AS_IO, &sys2900_state::io_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(640, 480); screen.set_visarea(0, 640-1, 0, 480-1); screen.set_screen_update(FUNC(sys2900_state::screen_update_sys2900)); screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); Z80CTC(config, "ctc", 0); Z80PIO(config, "pio", 0); Z80SIO(config, "sio1", 0); Z80SIO(config, "sio2", 0); }
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); ctc.zc_callback<0>().set("sio", FUNC(z80sio_device::rxtxcb_w)); // SIO Ch B ctc.zc_callback<1>().set("dart", FUNC(z80dart_device::txca_w)); // Z80DART Ch A, SIO Ch A ctc.zc_callback<1>().append("dart", FUNC(z80dart_device::rxca_w)); ctc.zc_callback<1>().append("sio", FUNC(z80sio_device::txca_w)); ctc.zc_callback<1>().append("sio", FUNC(z80sio_device::rxca_w));
com8116_device &brg(COM8116(config, "brg", XTAL(5'068'800))); // WD1943, SMC8116 brg.ft_handler().set("sio", FUNC(z80sio_device::rxca_w)); brg.ft_handler().append("sio", FUNC(z80sio_device::txca_w)); brg.fr_handler().set("sio", FUNC(z80sio_device::rxtxcb_w)); Z80PIO(config, m_pio_g, 20_MHz_XTAL / 8); m_pio_g->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio_g->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); Z80PIO(config, m_pio_s, 20_MHz_XTAL / 8); m_pio_s->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio_s->in_pa_callback().set(FUNC(kaypro_state::pio_system_r)); m_pio_s->out_pa_callback().set(FUNC(kaypro_state::kayproii_pio_system_w)); z80sio_device& sio(Z80SIO(config, "sio", 20_MHz_XTAL / 8)); sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); sio.out_txda_callback().set("serial", FUNC(rs232_port_device::write_txd)); sio.out_dtra_callback().set("serial", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("serial", FUNC(rs232_port_device::write_rts)); sio.out_txdb_callback().set("kbd", FUNC(kaypro_10_keyboard_device::txd_w)); FD1793(config, m_fdc, 20_MHz_XTAL / 20); m_fdc->intrq_wr_callback().set(FUNC(kaypro_state::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(kaypro_state::fdc_drq_w)); m_fdc->set_force_ready(true); MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525ssdd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525ssdd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_SOFTWARE_LIST_ADD("flop_list","kayproii")
GFXDECODE_END void nanos_state::nanos(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(4'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &nanos_state::mem_map); m_maincpu->set_addrmap(AS_IO, &nanos_state::io_map); m_maincpu->set_daisy_config(nanos_daisy_chain); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_screen_update(FUNC(nanos_state::screen_update)); screen.set_size(80*8, 25*10); screen.set_visarea(0,80*8-1,0,25*10-1); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_nanos); PALETTE(config, "palette", palette_device::MONOCHROME); /* devices */ Z80CTC(config, m_ctc_0, XTAL(4'000'000)); m_ctc_0->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc_0->zc_callback<0>().set(FUNC(nanos_state::ctc_z0_w)); m_ctc_0->zc_callback<1>().set(FUNC(nanos_state::ctc_z1_w)); m_ctc_0->zc_callback<2>().set(FUNC(nanos_state::ctc_z2_w)); Z80CTC(config, m_ctc_1, XTAL(4'000'000)); m_ctc_1->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc_1->zc_callback<0>().set(FUNC(nanos_state::ctc_z0_w)); m_ctc_1->zc_callback<1>().set(FUNC(nanos_state::ctc_z1_w)); m_ctc_1->zc_callback<2>().set(FUNC(nanos_state::ctc_z2_w)); Z80PIO(config, m_pio_0, XTAL(4'000'000)); m_pio_0->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); Z80PIO(config, m_pio_1, XTAL(4'000'000)); m_pio_1->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); Z80SIO(config, m_sio_0, XTAL(4'000'000)); m_sio_0->out_int_callback().set(FUNC(nanos_state::z80daisy_interrupt)); Z80SIO(config, m_sio_1, XTAL(4'000'000)); m_sio_1->out_int_callback().set(FUNC(nanos_state::z80daisy_interrupt)); Z80PIO(config, m_pio, XTAL(4'000'000)); m_pio->in_pa_callback().set(FUNC(nanos_state::port_a_r)); m_pio->in_pb_callback().set(FUNC(nanos_state::port_b_r)); m_pio->out_pb_callback().set(FUNC(nanos_state::port_b_w)); /* UPD765 */ UPD765A(config, m_fdc, 8'000'000, false, true); FLOPPY_CONNECTOR(config, m_floppy, nanos_floppies, "525hd", nanos_state::floppy_formats); /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); TIMER(config, "keyboard_timer").configure_periodic(FUNC(nanos_state::keyboard_callback), attotime::from_hz(24000)); }
m_dma->in_mreq_callback().set(FUNC(aussiebyte_state::memory_read_byte)); m_dma->out_mreq_callback().set(FUNC(aussiebyte_state::memory_write_byte)); m_dma->in_iorq_callback().set(FUNC(aussiebyte_state::io_read_byte)); m_dma->out_iorq_callback().set(FUNC(aussiebyte_state::io_write_byte)); Z80PIO(config, m_pio1, 16_MHz_XTAL / 4); m_pio1->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio1->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); m_pio1->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r)); m_pio1->out_ardy_callback().set(m_centronics, FUNC(centronics_device::write_strobe)).invert(); Z80PIO(config, m_pio2, 16_MHz_XTAL / 4); m_pio2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio2->out_pa_callback().set(FUNC(aussiebyte_state::port20_w)); z80sio_device& sio1(Z80SIO(config, "sio1", 16_MHz_XTAL / 4)); sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); sio1.out_wrdya_callback().set(FUNC(aussiebyte_state::sio1_rdya_w)); sio1.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio1_rdyb_w)); z80sio_device& sio2(Z80SIO(config, "sio2", 16_MHz_XTAL / 4)); sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); sio2.out_wrdya_callback().set(FUNC(aussiebyte_state::sio2_rdya_w)); sio2.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio2_rdyb_w)); sio2.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); sio2.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio2.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard"); m_rs232->rxd_handler().set("sio2", FUNC(z80sio_device::rxa_w));