ROM_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void bbc_tube_casper_device::device_add_mconfig(machine_config &config) { M68000(config, m_m68000, 4_MHz_XTAL); m_m68000->set_addrmap(AS_PROGRAM, &bbc_tube_casper_device::tube_casper_mem); VIA6522(config, m_via6522_0, 4_MHz_XTAL / 2); m_via6522_0->writepb_handler().set(m_via6522_1, FUNC(via6522_device::write_pa)); m_via6522_0->ca2_handler().set(m_via6522_1, FUNC(via6522_device::write_cb1)); m_via6522_0->cb2_handler().set(m_via6522_1, FUNC(via6522_device::write_ca1)); m_via6522_0->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); VIA6522(config, m_via6522_1, 4_MHz_XTAL / 2); m_via6522_1->writepb_handler().set(m_via6522_0, FUNC(via6522_device::write_pa)); m_via6522_1->ca2_handler().set(m_via6522_0, FUNC(via6522_device::write_cb1)); m_via6522_1->cb2_handler().set(m_via6522_0, FUNC(via6522_device::write_ca1)); m_via6522_1->irq_handler().set_inputline(m_m68000, M68K_IRQ_1); /* software lists */ SOFTWARE_LIST(config, "flop_ls_casper").set_original("bbc_flop_68000"); }
void enmirage_state::mirage(machine_config &config) { MC6809E(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &enmirage_state::mirage_map); config.set_default_layout(layout_mirage); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); es5503_device &es5503(ES5503(config, "es5503", 7000000)); es5503.set_channels(2); es5503.irq_func().set(FUNC(enmirage_state::mirage_doc_irq)); es5503.adc_func().set(FUNC(enmirage_state::mirage_adc_read)); es5503.add_route(0, "lspeaker", 1.0); es5503.add_route(1, "rspeaker", 1.0); VIA6522(config, m_via, 1000000); m_via->writepa_handler().set(FUNC(enmirage_state::mirage_via_write_porta)); m_via->writepb_handler().set(FUNC(enmirage_state::mirage_via_write_portb)); m_via->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); acia6850_device &acia6850(ACIA6850(config, "acia6850", 0)); acia6850.irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); WD1772(config, m_fdc, 8000000); m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); m_fdc->drq_wr_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); FLOPPY_CONNECTOR(config, "wd1772:0", ensoniq_floppies, "35dd", enmirage_state::floppy_formats); }
ROM_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void bbc_tube_zep100_device::device_add_mconfig(machine_config &config) { Z80(config, m_z80, 4_MHz_XTAL); m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_zep100_device::tube_zep100_mem); m_z80->set_addrmap(AS_IO, &bbc_tube_zep100_device::tube_zep100_io); VIA6522(config, m_via, 4_MHz_XTAL / 2); m_via->writepb_handler().set(FUNC(bbc_tube_zep100_device::via_pb_w)); m_via->cb2_handler().set(m_ppi, FUNC(i8255_device::pc2_w)); m_via->ca2_handler().set(m_ppi, FUNC(i8255_device::pc6_w)); m_via->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); I8255A(config, m_ppi, 0); m_ppi->out_pa_callback().set(m_via, FUNC(via6522_device::write_pa)); m_ppi->in_pb_callback().set(FUNC(bbc_tube_zep100_device::ppi_pb_r)); m_ppi->out_pc_callback().set(FUNC(bbc_tube_zep100_device::ppi_pc_w)); /* internal ram */ RAM(config, m_ram).set_default_size("64K").set_default_value(0x00); /* software lists */ SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter("Z80"); }
void acorn_vib_device::device_add_mconfig(machine_config &config) { INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set(FUNC(acorn_vib_device::irq_w)); VIA6522(config, m_via6522, XTAL(1'000'000)); m_via6522->writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w)); m_via6522->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); m_via6522->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->ack_handler().set(m_via6522, FUNC(via6522_device::write_ca1)); m_centronics->busy_handler().set(m_via6522, FUNC(via6522_device::write_pa7)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); I8255(config, m_ppi8255, 0); ACIA6850(config, m_acia, 0); m_acia->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); m_acia->rts_handler().set(m_rs232, FUNC(rs232_port_device::write_rts)); m_acia->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); m_rs232->rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd)); m_rs232->cts_handler().set(m_acia, FUNC(acia6850_device::write_cts)); m_rs232->dcd_handler().set(m_acia, FUNC(acia6850_device::write_dcd)); CLOCK(config, m_acia_clock, 1.8432_MHz_XTAL); m_acia_clock->signal_handler().set(FUNC(acorn_vib_device::write_acia_clock)); }
void vic1112_device::device_add_mconfig(machine_config &config) { VIA6522(config, m_via0, DERIVED_CLOCK(1, 1)); m_via0->readpb_handler().set(FUNC(vic1112_device::via0_pb_r)); m_via0->writepb_handler().set(FUNC(vic1112_device::via0_pb_w)); m_via0->irq_handler().set(FUNC(vic1112_device::via0_irq_w)); VIA6522(config, m_via1, DERIVED_CLOCK(1, 1)); m_via1->readpb_handler().set(IEEE488_TAG, FUNC(ieee488_device::dio_r)); m_via1->writepa_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w)); m_via1->ca2_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w)); m_via1->cb2_handler().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w)); m_via1->irq_handler().set(FUNC(vic1112_device::via1_irq_w)); IEEE488(config, m_bus, 0); ieee488_slot_device::add_cbm_defaults(config, nullptr); m_bus->srq_callback().set(m_via1, FUNC(via6522_device::write_cb1)); }
void fd2000_device::add_common_devices(machine_config &config) { M65C02(config, m_maincpu, 24_MHz_XTAL / 12); via6522_device &via(VIA6522(config, G65SC22P2_TAG, 24_MHz_XTAL / 12)); via.readpa_handler().set(FUNC(fd2000_device::via_pa_r)); via.readpb_handler().set(FUNC(fd2000_device::via_pb_r)); via.writepa_handler().set(FUNC(fd2000_device::via_pa_w)); via.writepb_handler().set(FUNC(fd2000_device::via_pb_w)); }
void macpci_state::pippin(machine_config &config) { /* basic machine hardware */ PPC603(config, m_maincpu, 66000000); m_maincpu->set_addrmap(AS_PROGRAM, &macpci_state::pippin_mem); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); 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(macpci_state::screen_update_pippin)); screen.set_palette("palette"); palette_device &palette(PALETTE(config, "palette", 2)); palette.set_init("palette", FUNC(palette_device::palette_init_monochrome)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); cdda_device &cdda(CDDA(config, "cdda")); cdda.add_route(0, "lspeaker", 1.00); cdda.add_route(1, "rspeaker", 1.00); cdrom_image_device &cdrom(CDROM(config, "cdrom", 0)); cdrom.set_interface("pippin_cdrom"); SOFTWARE_LIST(config, "cd_list").set_type("pippin", SOFTWARE_LIST_ORIGINAL_SYSTEM); RAM(config, m_ram); m_ram->set_default_size("32M"); VIA6522(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(macpci_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macpci_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macpci_state::mac_via_out_a)); m_via1->writepb_handler().set(FUNC(macpci_state::mac_via_out_b)); m_via1->cb2_handler().set(FUNC(macpci_state::mac_adb_via_out_cb2)); m_via1->irq_handler().set(FUNC(macpci_state::mac_via_irq)); //scc8530_t &scc(SCC8530(config, "scc", C7M)); //scc.intrq_callback().set(FUNC(macpci_state::set_scc_interrupt)); CUDA(config, m_cuda, 0); m_cuda->set_type(CUDA_341S0060); m_cuda->reset_callback().set(FUNC(macpci_state::cuda_reset_w)); m_cuda->linechange_callback().set(FUNC(macpci_state::cuda_adb_linechange_w)); m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1)); m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2)); config.m_perfect_cpu_quantum = subtag("maincpu"); }
void goupil_base_state::base(machine_config &config) { M6808(config, m_maincpu, CPU_CLOCK); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(50); // TODO: sound hardware ACIA6850(config, m_acia, 0); // TODO: Is this specific to the G1? VIA6522(config, m_via_video, CPU_CLOCK / 4); VIA6522(config, m_via_keyb, CPU_CLOCK / 4); m_via_keyb->irq_handler().set_inputline(m_maincpu, M6808_IRQ_LINE); VIA6522(config, m_via_modem, CPU_CLOCK / 4); m_via_modem->irq_handler().set_inputline(m_maincpu, M6808_IRQ_LINE); /* Floppy */ FD1791(config, m_fdc, 8_MHz_XTAL); FLOPPY_CONNECTOR(config, m_floppy0, goupil_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy1, goupil_floppies, "525qd", floppy_image_device::default_floppy_formats); i8279_device &i8279_kb1(I8279(config, "i8279_kb1", CPU_CLOCK)); i8279_kb1.out_sl_callback().set(FUNC(goupil_g1_state::scanlines_kbd1_w)); // scan SL lines i8279_kb1.in_rl_callback().set(FUNC(goupil_g1_state::kbd1_r)); // kbd RL lines i8279_kb1.in_shift_callback().set(FUNC(goupil_g1_state::shift_kb1_r)); i8279_kb1.in_ctrl_callback().set(FUNC(goupil_g1_state::ctrl_kb1_r)); i8279_kb1.out_irq_callback().set(m_via_keyb, FUNC(via6522_device::write_ca1)); i8279_device &i8279_kb2(I8279(config, "i8279_kb2", CPU_CLOCK)); i8279_kb2.out_sl_callback().set(FUNC(goupil_g1_state::scanlines_kbd2_w)); // scan SL lines i8279_kb2.in_rl_callback().set(FUNC(goupil_g1_state::kbd2_r)); // kbd RL lines i8279_kb2.in_shift_callback().set_constant(1); i8279_kb2.in_ctrl_callback().set_constant(1); }
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 cms_state::cms6502(machine_config &config) { M6502(config, m_maincpu, 1_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &cms_state::cms6502_mem); INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); VIA6522(config, m_via, 1_MHz_XTAL); //m_via->cb2_handler().set(FUNC(cms_state::cass_w)); m_via->irq_handler().set("irqs", FUNC(input_merger_device::in_w<0>)); /* 7 Slot Backplane */ ACORN_BUS(config, m_bus, 0); m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(cms_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, cms_bus_devices, "4080term"); ACORN_BUS_SLOT(config, "bus2", m_bus, cms_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus3", m_bus, cms_bus_devices, "fdc"); ACORN_BUS_SLOT(config, "bus4", m_bus, cms_bus_devices, "hires"); ACORN_BUS_SLOT(config, "bus5", m_bus, cms_bus_devices, nullptr); ACORN_BUS_SLOT(config, "bus6", m_bus, cms_bus_devices, nullptr); }
void econet_e01_device::device_add_mconfig(machine_config &config) { // basic machine hardware M65C02(config, m_maincpu, XTAL(8'000'000)/4); // Rockwell R65C102P3 m_maincpu->set_addrmap(AS_PROGRAM, &econet_e01_device::e01_mem); MC146818(config, m_rtc, 32.768_kHz_XTAL); m_rtc->irq().set(FUNC(econet_e01_device::rtc_irq_w)); // devices via6522_device &via(VIA6522(config, R6522_TAG, 8_MHz_XTAL / 4)); via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w)); via.irq_handler().set(FUNC(econet_e01_device::via_irq_w)); MC6854(config, m_adlc, 0); m_adlc->out_irq_cb().set(FUNC(econet_e01_device::adlc_irq_w)); m_adlc->out_txd_cb().set(FUNC(econet_e01_device::econet_data_w)); WD2793(config, m_fdc, 8_MHz_XTAL / 4); m_fdc->intrq_wr_callback().set(FUNC(econet_e01_device::fdc_irq_w)); m_fdc->drq_wr_callback().set(FUNC(econet_e01_device::fdc_drq_w)); for (int i = 0; i < 2; i++) { FLOPPY_CONNECTOR(config, m_floppy[i]); m_floppy[i]->option_add("35dd", FLOPPY_35_DD); m_floppy[i]->set_default_option("35dd"); m_floppy[i]->set_formats(floppy_formats_afs); } software_list_device &softlist(SOFTWARE_LIST(config, "flop_ls_e01")); softlist.set_type("e01_flop", SOFTWARE_LIST_ORIGINAL_SYSTEM); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); SCSI_PORT(config, m_scsibus); m_scsibus->set_data_input_buffer(m_scsi_data_in); m_scsibus->msg_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit0)); m_scsibus->bsy_handler().set(FUNC(econet_e01_device::scsi_bsy_w)); // bit1 // bit 2 0 // bit 3 0 // bit 4 NIRQ m_scsibus->req_handler().set(FUNC(econet_e01_device::scsi_req_w)); // bit5 m_scsibus->io_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit6)); m_scsibus->cd_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit7)); m_scsibus->set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_scsi_data_out); m_scsibus->set_output_latch(*m_scsi_data_out); INPUT_BUFFER(config, m_scsi_data_in); INPUT_BUFFER(config, m_scsi_ctrl_in); // internal ram RAM(config, m_ram); m_ram->set_default_size("64K"); }