From 5a4d710e2608672b44aa94d5af001c3c069656b4 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 21 Jan 2021 10:51:37 -0500 Subject: 6522via.cpp: Distinguish some different VIA types --- src/devices/bus/a2bus/a2mockingboard.cpp | 4 +- src/devices/bus/acorn/cms/4080term.cpp | 2 +- src/devices/bus/acorn/system/vib.cpp | 2 +- src/devices/bus/bbc/1mhzbus/cc500.cpp | 2 +- src/devices/bus/bbc/tube/tube_casper.cpp | 4 +- src/devices/bus/bbc/tube/tube_zep100.cpp | 2 +- src/devices/bus/cbmiec/c1541.cpp | 4 +- src/devices/bus/cbmiec/c1571.cpp | 4 +- src/devices/bus/cbmiec/cmdhd.cpp | 4 +- src/devices/bus/cbmiec/fd2000.cpp | 2 +- src/devices/bus/cbmiec/interpod.cpp | 2 +- src/devices/bus/econet/e01.cpp | 4 +- src/devices/bus/electron/cart/ap5.cpp | 2 +- src/devices/bus/electron/m2105.cpp | 4 +- src/devices/bus/electron/plus2.cpp | 2 +- src/devices/bus/ieee488/c2031.cpp | 4 +- src/devices/bus/ieee488/c2040.cpp | 2 +- src/devices/bus/ieee488/c8050.cpp | 2 +- src/devices/bus/ieee488/d9060.cpp | 2 +- src/devices/bus/tanbus/radisc.cpp | 2 +- src/devices/bus/tanbus/tanex.cpp | 4 +- src/devices/bus/vic20/vic1112.cpp | 4 +- src/devices/machine/6522via.cpp | 51 +++++++++++++++++++++-- src/devices/machine/6522via.h | 71 +++++++++++++++++++++++++++++--- src/mame/drivers/accomm.cpp | 2 +- src/mame/drivers/aci_ggm.cpp | 2 +- src/mame/drivers/aci_prodigy.cpp | 2 +- src/mame/drivers/acrnsys.cpp | 4 +- src/mame/drivers/aim65.cpp | 4 +- src/mame/drivers/aim65_40.cpp | 6 +-- src/mame/drivers/apple3.cpp | 4 +- src/mame/drivers/applix.cpp | 2 +- src/mame/drivers/aristmk4.cpp | 2 +- src/mame/drivers/atarisy1.cpp | 2 +- src/mame/drivers/atom.cpp | 4 +- src/mame/drivers/ave_arb.cpp | 8 +++- src/mame/drivers/bbc.cpp | 8 ++-- src/mame/drivers/beezer.cpp | 4 +- src/mame/drivers/bmcbowl.cpp | 2 +- src/mame/drivers/chexx.cpp | 2 +- src/mame/drivers/clcd.cpp | 4 +- src/mame/drivers/cms.cpp | 2 +- src/mame/drivers/concept.cpp | 2 +- src/mame/drivers/cops.cpp | 6 +-- src/mame/drivers/ec65.cpp | 4 +- src/mame/drivers/electron.cpp | 2 +- src/mame/drivers/emma2.cpp | 2 +- src/mame/drivers/enmirage.cpp | 2 +- src/mame/drivers/epic14e.cpp | 2 +- src/mame/drivers/esprit.cpp | 2 +- src/mame/drivers/gameplan.cpp | 6 +-- src/mame/drivers/goupil.cpp | 6 +-- src/mame/drivers/gts3.cpp | 4 +- src/mame/drivers/gts3a.cpp | 4 +- src/mame/drivers/hhtiger.cpp | 4 +- src/mame/drivers/itech32.cpp | 2 +- src/mame/drivers/itech8.cpp | 2 +- src/mame/drivers/jr100.cpp | 2 +- src/mame/drivers/jvh.cpp | 2 +- src/mame/drivers/lisa.cpp | 4 +- src/mame/drivers/lwriter.cpp | 31 +++----------- src/mame/drivers/mac.cpp | 6 +-- src/mame/drivers/mac128.cpp | 5 ++- src/mame/drivers/macpci.cpp | 2 +- src/mame/drivers/macprtb.cpp | 2 +- src/mame/drivers/macpwrbk030.cpp | 8 ++-- src/mame/drivers/macquadra700.cpp | 4 +- src/mame/drivers/mbc020.cpp | 4 +- src/mame/drivers/nsg6809.cpp | 2 +- src/mame/drivers/oric.cpp | 4 +- src/mame/drivers/pet.cpp | 2 +- src/mame/drivers/pntnpuzl.cpp | 2 +- src/mame/drivers/rmnimbus.cpp | 2 +- src/mame/drivers/saitek_intchess.cpp | 2 +- src/mame/drivers/saitek_ssystem3.cpp | 2 +- src/mame/drivers/shine.cpp | 4 +- src/mame/drivers/swtpc09.cpp | 2 +- src/mame/drivers/swyft.cpp | 4 +- src/mame/drivers/sym1.cpp | 6 +-- src/mame/drivers/textelcomp.cpp | 12 +++--- src/mame/drivers/trvquest.cpp | 6 +-- src/mame/drivers/tv950.cpp | 2 +- src/mame/drivers/ultim809.cpp | 3 +- src/mame/drivers/vectrex.cpp | 2 +- src/mame/drivers/vic20.cpp | 4 +- src/mame/drivers/victor9k.cpp | 6 +-- src/mame/drivers/wicat.cpp | 2 +- src/mame/machine/victor9k_fdc.cpp | 6 +-- 88 files changed, 269 insertions(+), 176 deletions(-) diff --git a/src/devices/bus/a2bus/a2mockingboard.cpp b/src/devices/bus/a2bus/a2mockingboard.cpp index c7f5fda534d..c81614a8ec0 100644 --- a/src/devices/bus/a2bus/a2mockingboard.cpp +++ b/src/devices/bus/a2bus/a2mockingboard.cpp @@ -40,12 +40,12 @@ DEFINE_DEVICE_TYPE(A2BUS_ECHOPLUS, a2bus_echoplus_device, "a2echop", "S void a2bus_ayboard_device::add_common_devices(machine_config &config) { - VIA6522(config, m_via1, 1022727); + MOS6522(config, m_via1, 1022727); m_via1->writepa_handler().set(FUNC(a2bus_ayboard_device::via1_out_a)); m_via1->writepb_handler().set(FUNC(a2bus_ayboard_device::via1_out_b)); m_via1->irq_handler().set(FUNC(a2bus_ayboard_device::via1_irq_w)); - VIA6522(config, m_via2, 1022727); + MOS6522(config, m_via2, 1022727); m_via2->writepa_handler().set(FUNC(a2bus_ayboard_device::via2_out_a)); m_via2->writepb_handler().set(FUNC(a2bus_ayboard_device::via2_out_b)); m_via2->irq_handler().set(FUNC(a2bus_ayboard_device::via2_irq_w)); diff --git a/src/devices/bus/acorn/cms/4080term.cpp b/src/devices/bus/acorn/cms/4080term.cpp index 27f69d3a3c1..3313545a618 100644 --- a/src/devices/bus/acorn/cms/4080term.cpp +++ b/src/devices/bus/acorn/cms/4080term.cpp @@ -86,7 +86,7 @@ void cms_4080term_device::device_add_mconfig(machine_config &config) TIMER(config, "scantimer").configure_scanline(FUNC(cms_4080term_device::update_scanline), "screen", 0, 10); - VIA6522(config, m_via, 1_MHz_XTAL); + MOS6522(config, m_via, 1_MHz_XTAL); m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); m_via->irq_handler().set(FUNC(cms_4080term_device::bus_irq_w)); diff --git a/src/devices/bus/acorn/system/vib.cpp b/src/devices/bus/acorn/system/vib.cpp index cd6cffc61d4..bf685daac95 100644 --- a/src/devices/bus/acorn/system/vib.cpp +++ b/src/devices/bus/acorn/system/vib.cpp @@ -149,7 +149,7 @@ 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, 1'000'000); // TODO: derive clock from bus (pin 29 = ϕ2) + MOS6522(config, m_via6522, 1'000'000); // TODO: derive clock from bus (pin 29 = ϕ2) m_via6522->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); 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>)); diff --git a/src/devices/bus/bbc/1mhzbus/cc500.cpp b/src/devices/bus/bbc/1mhzbus/cc500.cpp index 8de7f36b884..c04fc06429e 100644 --- a/src/devices/bus/bbc/1mhzbus/cc500.cpp +++ b/src/devices/bus/bbc/1mhzbus/cc500.cpp @@ -61,7 +61,7 @@ ROM_END void bbc_cc500_device::device_add_mconfig(machine_config &config) { - VIA6522(config, m_via, DERIVED_CLOCK(1, 1)); + MOS6522(config, m_via, DERIVED_CLOCK(1, 1)); m_via->readpa_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via->writepa_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); m_via->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w)); diff --git a/src/devices/bus/bbc/tube/tube_casper.cpp b/src/devices/bus/bbc/tube/tube_casper.cpp index b75142d1383..301f0d4df32 100644 --- a/src/devices/bus/bbc/tube/tube_casper.cpp +++ b/src/devices/bus/bbc/tube/tube_casper.cpp @@ -53,13 +53,13 @@ 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); + MOS6522(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); + MOS6522(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)); diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp index 261f6357926..0d5b0d18948 100644 --- a/src/devices/bus/bbc/tube/tube_zep100.cpp +++ b/src/devices/bus/bbc/tube/tube_zep100.cpp @@ -105,7 +105,7 @@ void bbc_tube_zep100_device::device_add_mconfig(machine_config &config) 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); + MOS6522(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)); diff --git a/src/devices/bus/cbmiec/c1541.cpp b/src/devices/bus/cbmiec/c1541.cpp index aae2baddc09..62d29d71115 100644 --- a/src/devices/bus/cbmiec/c1541.cpp +++ b/src/devices/bus/cbmiec/c1541.cpp @@ -964,7 +964,7 @@ void c1541_device_base::device_add_mconfig(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &c1541_device_base::c1541_mem); //config.set_perfect_quantum(m_maincpu); FIXME: not safe in a slot device - add barriers - VIA6522(config, m_via0, XTAL(16'000'000)/16); + MOS6522(config, m_via0, XTAL(16'000'000)/16); m_via0->readpa_handler().set(FUNC(c1541_device_base::via0_pa_r)); m_via0->readpb_handler().set(FUNC(c1541_device_base::via0_pb_r)); m_via0->writepa_handler().set(FUNC(c1541_device_base::via0_pa_w)); @@ -972,7 +972,7 @@ void c1541_device_base::device_add_mconfig(machine_config &config) m_via0->cb2_handler().set(FUNC(c1541_device_base::via0_ca2_w)); m_via0->irq_handler().set(FUNC(c1541_device_base::via0_irq_w)); - VIA6522(config, m_via1, XTAL(16'000'000)/16); + MOS6522(config, m_via1, XTAL(16'000'000)/16); m_via1->readpa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_r)); m_via1->readpb_handler().set(FUNC(c1541_device_base::via1_pb_r)); m_via1->writepa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_w)); diff --git a/src/devices/bus/cbmiec/c1571.cpp b/src/devices/bus/cbmiec/c1571.cpp index d08d92c8d7a..e711ce062ce 100644 --- a/src/devices/bus/cbmiec/c1571.cpp +++ b/src/devices/bus/cbmiec/c1571.cpp @@ -600,14 +600,14 @@ void c1571_device::add_base_mconfig(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &c1571_device::c1571_mem); //config.set_perfect_quantum(m_maincpu); FIXME: not safe in a slot device - add barriers - VIA6522(config, m_via0, 16_MHz_XTAL / 16); + MOS6522(config, m_via0, 16_MHz_XTAL / 16); m_via0->readpa_handler().set(FUNC(c1571_device::via0_pa_r)); m_via0->readpb_handler().set(FUNC(c1571_device::via0_pb_r)); m_via0->writepa_handler().set(FUNC(c1571_device::via0_pa_w)); m_via0->writepb_handler().set(FUNC(c1571_device::via0_pb_w)); m_via0->irq_handler().set(FUNC(c1571_device::via0_irq_w)); - VIA6522(config, m_via1, 16_MHz_XTAL / 16); + MOS6522(config, m_via1, 16_MHz_XTAL / 16); m_via1->readpa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_r)); m_via1->readpb_handler().set(FUNC(c1571_device::via1_pb_r)); m_via1->writepa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_w)); diff --git a/src/devices/bus/cbmiec/cmdhd.cpp b/src/devices/bus/cbmiec/cmdhd.cpp index 096f68a9641..104b0eb456e 100644 --- a/src/devices/bus/cbmiec/cmdhd.cpp +++ b/src/devices/bus/cbmiec/cmdhd.cpp @@ -78,8 +78,8 @@ void cmd_hd_device::device_add_mconfig(machine_config &config) M6502(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &cmd_hd_device::mem_map); - VIA6522(config, M6522_1_TAG, 2000000); - VIA6522(config, M6522_2_TAG, 2000000); + MOS6522(config, M6522_1_TAG, 2000000); + MOS6522(config, M6522_2_TAG, 2000000); I8255A(config, I8255A_TAG, 0); RTC72421(config, RTC72421A_TAG, XTAL(32'768)); diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp index 0ac6321c359..057c77c7db9 100644 --- a/src/devices/bus/cbmiec/fd2000.cpp +++ b/src/devices/bus/cbmiec/fd2000.cpp @@ -219,7 +219,7 @@ 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)); + via6522_device &via(R65C22(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)); diff --git a/src/devices/bus/cbmiec/interpod.cpp b/src/devices/bus/cbmiec/interpod.cpp index 27d418a749d..c5479a30b18 100644 --- a/src/devices/bus/cbmiec/interpod.cpp +++ b/src/devices/bus/cbmiec/interpod.cpp @@ -128,7 +128,7 @@ void cbm_interpod_device::device_add_mconfig(machine_config &config) M6502(config, m_maincpu, 1000000); m_maincpu->set_addrmap(AS_PROGRAM, &cbm_interpod_device::interpod_mem); - VIA6522(config, m_via, 1000000); + MOS6522(config, m_via, 1000000); MOS6532_NEW(config, m_riot, 1000000); diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp index ede1c58dafa..3326607b60c 100644 --- a/src/devices/bus/econet/e01.cpp +++ b/src/devices/bus/econet/e01.cpp @@ -30,7 +30,7 @@ 2 x TMM27256D-20 white labelled EPROMs, TMSE01 MOS on left and E01 FS on the right IC20 WD2793-APL-02 floppy disc controller 2 x NEC D41464C-12 64k x 4bit NMOS RAM ICs giving 64K memory - IC21 Rockwell RC6522AP VIA behind to the right + IC21 Rockwell R65C22AP or CMD G65SC22P-2 VIA behind to the right */ @@ -248,7 +248,7 @@ void econet_e01_device::device_add_mconfig(machine_config &config) m_rtc->irq().set(FUNC(econet_e01_device::rtc_irq_w)); // devices - via6522_device &via(VIA6522(config, R6522_TAG, 8_MHz_XTAL / 4)); + via6522_device &via(R65C22(config, R6522_TAG, 8_MHz_XTAL / 4)); via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); via.irq_handler().set(FUNC(econet_e01_device::via_irq_w)); diff --git a/src/devices/bus/electron/cart/ap5.cpp b/src/devices/bus/electron/cart/ap5.cpp index 3deacaa655b..cc4c951a154 100644 --- a/src/devices/bus/electron/cart/ap5.cpp +++ b/src/devices/bus/electron/cart/ap5.cpp @@ -33,7 +33,7 @@ void electron_ap5_device::device_add_mconfig(machine_config &config) m_romslot[1]->set_device_load(FUNC(electron_ap5_device::rom2_load)); /* via */ - VIA6522(config, m_via, DERIVED_CLOCK(1, 16)); + MOS6522(config, m_via, DERIVED_CLOCK(1, 16)); m_via->readpb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via->writepb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); m_via->cb1_handler().set(m_userport, FUNC(bbc_userport_slot_device::write_cb1)); diff --git a/src/devices/bus/electron/m2105.cpp b/src/devices/bus/electron/m2105.cpp index e0215ae6de9..d7058943a92 100644 --- a/src/devices/bus/electron/m2105.cpp +++ b/src/devices/bus/electron/m2105.cpp @@ -65,7 +65,7 @@ void electron_m2105_device::device_add_mconfig(machine_config &config) RAM(config, m_ram).set_default_size("64K"); /* system via */ - VIA6522(config, m_via6522_0, DERIVED_CLOCK(1, 16)); + MOS6522(config, m_via6522_0, DERIVED_CLOCK(1, 16)); //m_via6522_0->readpa_handler().set(FUNC(electron_m2105_device::m2105_via_system_read_porta)); m_via6522_0->readpb_handler().set(m_tms, FUNC(tms5220_device::status_r)); //m_via6522_0->writepa_handler().set(FUNC(electron_m2105_device::m2105_via_system_write_porta)); @@ -73,7 +73,7 @@ void electron_m2105_device::device_add_mconfig(machine_config &config) m_via6522_0->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); /* user via */ - VIA6522(config, m_via6522_1, DERIVED_CLOCK(1, 16)); + MOS6522(config, m_via6522_1, DERIVED_CLOCK(1, 16)); m_via6522_1->writepb_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via6522_1->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); m_via6522_1->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); diff --git a/src/devices/bus/electron/plus2.cpp b/src/devices/bus/electron/plus2.cpp index 7eeb4b2cd95..d379f053047 100644 --- a/src/devices/bus/electron/plus2.cpp +++ b/src/devices/bus/electron/plus2.cpp @@ -50,7 +50,7 @@ void electron_plus2_device::device_add_mconfig(machine_config &config) m_cart[1]->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(electron_expansion_slot_device::nmi_w)); /* via */ - VIA6522(config, m_via, DERIVED_CLOCK(1, 16)); + MOS6522(config, m_via, DERIVED_CLOCK(1, 16)); m_via->readpb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via->writepb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); m_via->cb1_handler().set(m_userport, FUNC(bbc_userport_slot_device::write_cb1)); diff --git a/src/devices/bus/ieee488/c2031.cpp b/src/devices/bus/ieee488/c2031.cpp index 10b21fcff4d..a01e42ec113 100644 --- a/src/devices/bus/ieee488/c2031.cpp +++ b/src/devices/bus/ieee488/c2031.cpp @@ -300,14 +300,14 @@ void c2031_device::device_add_mconfig(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &c2031_device::c2031_mem); //config.set_perfect_quantum(m_maincpu); FIXME: not safe in a slot device - add barriers - VIA6522(config, m_via0, XTAL(16'000'000)/16); + MOS6522(config, m_via0, XTAL(16'000'000)/16); m_via0->readpa_handler().set(FUNC(c2031_device::via0_pa_r)); m_via0->readpb_handler().set(FUNC(c2031_device::via0_pb_r)); m_via0->writepa_handler().set(FUNC(c2031_device::via0_pa_w)); m_via0->writepb_handler().set(FUNC(c2031_device::via0_pb_w)); m_via0->irq_handler().set(FUNC(c2031_device::via0_irq_w)); - VIA6522(config, m_via1, XTAL(16'000'000)/16); + MOS6522(config, m_via1, XTAL(16'000'000)/16); m_via1->readpa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_r)); m_via1->readpb_handler().set(FUNC(c2031_device::via1_pb_r)); m_via1->writepa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_w)); diff --git a/src/devices/bus/ieee488/c2040.cpp b/src/devices/bus/ieee488/c2040.cpp index a42dc1a2099..cc8ff042235 100644 --- a/src/devices/bus/ieee488/c2040.cpp +++ b/src/devices/bus/ieee488/c2040.cpp @@ -471,7 +471,7 @@ void c2040_device::add_common_devices(machine_config &config) M6504(config, m_fdccpu, XTAL(16'000'000)/16); m_fdccpu->set_addrmap(AS_PROGRAM, &c2040_device::c2040_fdc_mem); - VIA6522(config, m_via, XTAL(16'000'000)/16); + MOS6522(config, m_via, XTAL(16'000'000)/16); m_via->readpa_handler().set(m_fdc, FUNC(c2040_fdc_device::read)); m_via->writepb_handler().set(FUNC(c2040_device::via_pb_w)); m_via->ca2_handler().set(m_fdc, FUNC(c2040_fdc_device::mode_sel_w)); diff --git a/src/devices/bus/ieee488/c8050.cpp b/src/devices/bus/ieee488/c8050.cpp index 367c4299857..7c25022051f 100644 --- a/src/devices/bus/ieee488/c8050.cpp +++ b/src/devices/bus/ieee488/c8050.cpp @@ -548,7 +548,7 @@ void c8050_device::add_common_devices(machine_config &config) // controller M6504(config, m_fdccpu, XTAL(12'000'000)/12); - VIA6522(config, m_via, XTAL(12'000'000)/12); + MOS6522(config, m_via, XTAL(12'000'000)/12); m_via->readpa_handler().set(m_fdc, FUNC(c8050_fdc_device::read)); m_via->writepb_handler().set(FUNC(c8050_device::via_pb_w)); m_via->ca2_handler().set(m_fdc, FUNC(c8050_fdc_device::mode_sel_w)); diff --git a/src/devices/bus/ieee488/d9060.cpp b/src/devices/bus/ieee488/d9060.cpp index 1de4dfd9347..15b8d4cc5c8 100644 --- a/src/devices/bus/ieee488/d9060.cpp +++ b/src/devices/bus/ieee488/d9060.cpp @@ -383,7 +383,7 @@ void d9060_device_base::device_add_mconfig(machine_config &config) M6502(config, m_hdccpu, XTAL(4'000'000)/4); m_hdccpu->set_addrmap(AS_PROGRAM, &d9060_device::hdc_mem); - VIA6522(config, m_via, XTAL(4'000'000)/4); + MOS6522(config, m_via, XTAL(4'000'000)/4); m_via->writepa_handler().set(FUNC(d9060_device_base::scsi_data_w)); m_via->writepb_handler().set(FUNC(d9060_device_base::via_pb_w)); m_via->ca2_handler().set(FUNC(d9060_device_base::ack_w)); diff --git a/src/devices/bus/tanbus/radisc.cpp b/src/devices/bus/tanbus/radisc.cpp index 383a8b0d1bb..a537bb13535 100644 --- a/src/devices/bus/tanbus/radisc.cpp +++ b/src/devices/bus/tanbus/radisc.cpp @@ -53,7 +53,7 @@ void tanbus_radisc_device::device_add_mconfig(machine_config &config) MC146818(config, m_rtc, 32.768_kHz_XTAL); m_rtc->irq().set(m_irq_line, FUNC(input_merger_device::in_w)); - VIA6522(config, m_via, 4_MHz_XTAL / 4); + MOS6522(config, m_via, 4_MHz_XTAL / 4); m_via->irq_handler().set(m_irq_line, FUNC(input_merger_device::in_w)); /* audio hardware */ diff --git a/src/devices/bus/tanbus/tanex.cpp b/src/devices/bus/tanbus/tanex.cpp index cf9fd8b893d..f99a9d6cdf4 100644 --- a/src/devices/bus/tanbus/tanex.cpp +++ b/src/devices/bus/tanbus/tanex.cpp @@ -117,7 +117,7 @@ void tanbus_tanex_device::device_add_mconfig(machine_config &config) m_rs232->cts_handler().set(m_acia, FUNC(mos6551_device::write_cts)); /* via */ - VIA6522(config, m_via6522[0], DERIVED_CLOCK(1, 8)); + MOS6522(config, m_via6522[0], DERIVED_CLOCK(1, 8)); m_via6522[0]->readpa_handler().set(FUNC(tanbus_tanex_device::via_0_in_a)); m_via6522[0]->writepa_handler().set(FUNC(tanbus_tanex_device::via_0_out_a)); m_via6522[0]->writepb_handler().set(FUNC(tanbus_tanex_device::via_0_out_b)); @@ -125,7 +125,7 @@ void tanbus_tanex_device::device_add_mconfig(machine_config &config) m_via6522[0]->cb2_handler().set(FUNC(tanbus_tanex_device::via_0_out_cb2)); m_via6522[0]->irq_handler().set(m_irq_line, FUNC(input_merger_device::in_w)); - VIA6522(config, m_via6522[1], DERIVED_CLOCK(1, 8)); + MOS6522(config, m_via6522[1], DERIVED_CLOCK(1, 8)); m_via6522[1]->writepa_handler().set(FUNC(tanbus_tanex_device::via_1_out_a)); m_via6522[1]->writepb_handler().set(FUNC(tanbus_tanex_device::via_1_out_b)); m_via6522[1]->ca2_handler().set(FUNC(tanbus_tanex_device::via_1_out_ca2)); diff --git a/src/devices/bus/vic20/vic1112.cpp b/src/devices/bus/vic20/vic1112.cpp index 118298c2122..ce878ee5f9f 100644 --- a/src/devices/bus/vic20/vic1112.cpp +++ b/src/devices/bus/vic20/vic1112.cpp @@ -99,12 +99,12 @@ WRITE_LINE_MEMBER( vic1112_device::via1_irq_w ) void vic1112_device::device_add_mconfig(machine_config &config) { - VIA6522(config, m_via0, DERIVED_CLOCK(1, 1)); + MOS6522(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)); + MOS6522(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)); diff --git a/src/devices/machine/6522via.cpp b/src/devices/machine/6522via.cpp index 06f557c4355..0027ba7389a 100644 --- a/src/devices/machine/6522via.cpp +++ b/src/devices/machine/6522via.cpp @@ -165,8 +165,11 @@ void via6522_device::counter2_decrement() // LIVE DEVICE //************************************************************************** -// device type definition -DEFINE_DEVICE_TYPE(VIA6522, via6522_device, "via6522", "6522 VIA") +// device type definitions +DEFINE_DEVICE_TYPE(MOS6522, mos6522_device, "mos6522", "MOS 6522 VIA") +DEFINE_DEVICE_TYPE(R65C22, r65c22_device, "r65c22", "Rockwell R65C22 VIA") +DEFINE_DEVICE_TYPE(R65NC22, r65nc22_device, "r65nc22", "Rockwell R65NC22 VIA") +DEFINE_DEVICE_TYPE(W65C22S, w65c22s_device, "w65c22s", "WDC W65C22S VIA") void via6522_device::map(address_map &map) { @@ -177,8 +180,8 @@ void via6522_device::map(address_map &map) // via6522_device - constructor //------------------------------------------------- -via6522_device::via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VIA6522, tag, owner, clock), +via6522_device::via6522_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, type, tag, owner, clock), m_in_a_handler(*this), m_in_b_handler(*this), m_out_a_handler(*this), @@ -202,6 +205,46 @@ via6522_device::via6522_device(const machine_config &mconfig, const char *tag, d } +//------------------------------------------------- +// mos6522_device - constructor +//------------------------------------------------- + +mos6522_device::mos6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : via6522_device(mconfig, MOS6522, tag, owner, clock) +{ +} + + +//------------------------------------------------- +// r65c22_device - constructor +//------------------------------------------------- + +r65c22_device::r65c22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : via6522_device(mconfig, R65C22, tag, owner, clock) +{ +} + + +//------------------------------------------------- +// r65c22_device - constructor +//------------------------------------------------- + +r65nc22_device::r65nc22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : via6522_device(mconfig, R65NC22, tag, owner, clock) +{ +} + + +//------------------------------------------------- +// w65c22s_device - constructor +//------------------------------------------------- + +w65c22s_device::w65c22s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : via6522_device(mconfig, W65C22S, tag, owner, clock) +{ +} + + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- diff --git a/src/devices/machine/6522via.h b/src/devices/machine/6522via.h index 1a705ab6a29..164104190e4 100644 --- a/src/devices/machine/6522via.h +++ b/src/devices/machine/6522via.h @@ -11,6 +11,29 @@ Written by Mathis Rosenhauer +********************************************************************** + _____ _____ + Vss 1 |* \_/ | 40 CA1 + PA0 2 | | 39 CA2 + PA1 3 | | 38 RS0 + PA2 4 | | 37 RS1 + PA3 5 | | 36 RS2 + PA4 6 | | 35 RS3 + PA5 7 | | 34 _RES + PA6 8 | | 33 D0 + PA7 9 | | 32 D1 + PB0 10 | | 31 D2 + PB1 11 | MCS6522 | 30 D3 + PB2 12 | | 29 D4 + PB3 13 | | 28 D5 + PB4 14 | | 27 D6 + PB5 15 | | 26 D7 + PB6 16 | | 25 ϕ2 + PB7 17 | | 24 CS1 + CB1 18 | | 23 _CS2 + CB2 19 | | 22 R/_W + Vcc 20 |_____________| 21 _IRQ + **********************************************************************/ #ifndef MAME_MACHINE_6522VIA_H @@ -48,9 +71,6 @@ public: VIA_PANH = 15 }; - // construction/destruction - via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // TODO: REMOVE THESE auto readpa_handler() { return m_in_a_handler.bind(); } auto readpb_handler() { return m_in_b_handler.bind(); } @@ -94,6 +114,9 @@ public: void write_cb2(int state); protected: + // construction/destruction + via6522_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -184,9 +207,47 @@ private: uint8_t m_shift_counter; }; +// ======================> mos6522_device + +class mos6522_device : public via6522_device +{ +public: + // construction/destruction + mos6522_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + +// ======================> r65c22_device + +class r65c22_device : public via6522_device +{ +public: + // construction/destruction + r65c22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + +// ======================> r65nc22_device + +class r65nc22_device : public via6522_device +{ +public: + // construction/destruction + r65nc22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + +// ======================> w65c22s_device + +class w65c22s_device : public via6522_device +{ +public: + // construction/destruction + w65c22s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; -// device type definition -DECLARE_DEVICE_TYPE(VIA6522, via6522_device) +// device type declarations +DECLARE_DEVICE_TYPE(MOS6522, mos6522_device) +DECLARE_DEVICE_TYPE(R65C22, r65c22_device) +DECLARE_DEVICE_TYPE(R65NC22, r65nc22_device) +DECLARE_DEVICE_TYPE(W65C22S, w65c22s_device) #endif // MAME_MACHINE_6522VIA_H diff --git a/src/mame/drivers/accomm.cpp b/src/mame/drivers/accomm.cpp index 3af3d9f714d..9228cefd313 100644 --- a/src/mame/drivers/accomm.cpp +++ b/src/mame/drivers/accomm.cpp @@ -933,7 +933,7 @@ void accomm_state::accomm(machine_config &config) m_cct->set_addrmap(0, &accomm_state::saa5240_map); /* via */ - VIA6522(config, m_via, 16_MHz_XTAL / 16); + MOS6522(config, m_via, 16_MHz_XTAL / 16); m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via->ca2_handler().set("centronics", FUNC(centronics_device::write_strobe)); m_via->readpb_handler().set(m_rtc, FUNC(pcf8573_device::sda_r)).bit(0); diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp index 83c98657b55..eb00fb377dd 100644 --- a/src/mame/drivers/aci_ggm.cpp +++ b/src/mame/drivers/aci_ggm.cpp @@ -420,7 +420,7 @@ void ggm_state::ggm(machine_config &config) M6502(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &ggm_state::main_map); - VIA6522(config, m_via, 2000000); // DDRA = 0xff, DDRB = 0x81 + MOS6522(config, m_via, 2000000); // DDRA = 0xff, DDRB = 0x81 m_via->writepa_handler().set(FUNC(ggm_state::select_w)); m_via->writepb_handler().set(FUNC(ggm_state::control_w)); m_via->readpb_handler().set(FUNC(ggm_state::input_r)); diff --git a/src/mame/drivers/aci_prodigy.cpp b/src/mame/drivers/aci_prodigy.cpp index 15254482257..8fc5530a496 100644 --- a/src/mame/drivers/aci_prodigy.cpp +++ b/src/mame/drivers/aci_prodigy.cpp @@ -258,7 +258,7 @@ void prodigy_state::prodigy(machine_config &config) M6502(config, m_maincpu, 2_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &prodigy_state::main_map); - VIA6522(config, m_via, 2_MHz_XTAL); // DDRA = 0x00, DDRB = 0x8f + MOS6522(config, m_via, 2_MHz_XTAL); // DDRA = 0x00, DDRB = 0x8f m_via->readpa_handler().set(FUNC(prodigy_state::input1_r)); m_via->readpb_handler().set(FUNC(prodigy_state::input2_r)); m_via->writepb_handler().set(FUNC(prodigy_state::control_w)); diff --git a/src/mame/drivers/acrnsys.cpp b/src/mame/drivers/acrnsys.cpp index 85ff19d44cd..c46551f5d39 100644 --- a/src/mame/drivers/acrnsys.cpp +++ b/src/mame/drivers/acrnsys.cpp @@ -388,7 +388,7 @@ void acrnsys_state::a6502a(machine_config &config) INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); - VIA6522(config, m_via6522, 4_MHz_XTAL / 4); + MOS6522(config, m_via6522, 4_MHz_XTAL / 4); m_via6522->readpa_handler().set(FUNC(acrnsys_state::kbd_r)); //m_via6522->cb2_handler().set(FUNC(acrnsys_state::cass_w)); m_via6522->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); @@ -409,7 +409,7 @@ void acrnsys_state::a6809(machine_config &config) INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); - VIA6522(config, m_via6522, 4_MHz_XTAL / 4); + MOS6522(config, m_via6522, 4_MHz_XTAL / 4); m_via6522->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via6522->ca2_handler().set("centronics", FUNC(centronics_device::write_strobe)); //m_via6522->cb2_handler().set(FUNC(acrnsys_state::cass_w)); diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp index 33bea272c6d..0619b52988e 100644 --- a/src/mame/drivers/aim65.cpp +++ b/src/mame/drivers/aim65.cpp @@ -253,7 +253,7 @@ void aim65_state::aim65(machine_config &config) m_riot->pb_rd_callback().set([this] () { return aim65_state::z33_pb_r(); }); m_riot->irq_wr_callback().set_inputline(m_maincpu, M6502_IRQ_LINE); - VIA6522(config, m_via0, AIM65_CLOCK); + MOS6522(config, m_via0, AIM65_CLOCK); m_via0->readpb_handler().set([this] () { return aim65_state::z32_pb_r(); }); m_via0->writepa_handler().set([this] (u8 data) { aim65_state::z32_pa_w(data); }); m_via0->writepb_handler().set([this] (u8 data) { aim65_state::z32_pb_w(data); }); @@ -266,7 +266,7 @@ void aim65_state::aim65(machine_config &config) m_via0->cb2_handler().set([this] (bool state) { aim65_state::z32_cb2_w(state); }); m_via0->irq_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); - VIA6522(config, m_via1, AIM65_CLOCK); + MOS6522(config, m_via1, AIM65_CLOCK); m_via1->irq_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); PIA6821(config, m_pia, 0); diff --git a/src/mame/drivers/aim65_40.cpp b/src/mame/drivers/aim65_40.cpp index 92c3c103a88..ccb2f04d9b5 100644 --- a/src/mame/drivers/aim65_40.cpp +++ b/src/mame/drivers/aim65_40.cpp @@ -135,9 +135,9 @@ void aim65_40_state::aim65_40(machine_config &config) /* sound hardware */ /* devices */ - VIA6522(config, M6522_0_TAG, 1000000); - VIA6522(config, M6522_1_TAG, 1000000); - VIA6522(config, M6522_2_TAG, 1000000); + MOS6522(config, M6522_0_TAG, 1000000); + MOS6522(config, M6522_1_TAG, 1000000); + MOS6522(config, M6522_2_TAG, 1000000); mos6551_device &acia(MOS6551(config, M6551_TAG, 0)); acia.set_xtal(1.8432_MHz_XTAL); diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp index 4e284c1d2aa..470825e3a36 100644 --- a/src/mame/drivers/apple3.cpp +++ b/src/mame/drivers/apple3.cpp @@ -141,12 +141,12 @@ void apple3_state::apple3(machine_config &config) m_rtc->irq().set(m_via[1], FUNC(via6522_device::write_ca1)); /* via */ - VIA6522(config, m_via[0], 14.318181_MHz_XTAL / 14); + MOS6522(config, m_via[0], 14.318181_MHz_XTAL / 14); m_via[0]->writepa_handler().set(FUNC(apple3_state::apple3_via_0_out_a)); m_via[0]->writepb_handler().set(FUNC(apple3_state::apple3_via_0_out_b)); m_via[0]->irq_handler().set("mainirq", FUNC(input_merger_device::in_w<2>)); - VIA6522(config, m_via[1], 14.318181_MHz_XTAL / 14); + MOS6522(config, m_via[1], 14.318181_MHz_XTAL / 14); m_via[1]->writepa_handler().set(FUNC(apple3_state::apple3_via_1_out_a)); m_via[1]->writepb_handler().set(FUNC(apple3_state::apple3_via_1_out_b)); m_via[1]->irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp index 584b6429b05..1aa400a060b 100644 --- a/src/mame/drivers/applix.cpp +++ b/src/mame/drivers/applix.cpp @@ -917,7 +917,7 @@ void applix_state::applix(machine_config &config) m_crtc->set_begin_update_callback(FUNC(applix_state::crtc_update_border)); m_crtc->out_vsync_callback().set(FUNC(applix_state::vsync_w)); - VIA6522(config, m_via, 30_MHz_XTAL / 4 / 10); // VIA uses 68000 E clock + MOS6522(config, m_via, 30_MHz_XTAL / 4 / 10); // VIA uses 68000 E clock m_via->readpb_handler().set(FUNC(applix_state::applix_pb_r)); // in CB1 kbd clk // in CA2 vsync diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp index 75251a03cb8..12b5a0c3146 100644 --- a/src/mame/drivers/aristmk4.cpp +++ b/src/mame/drivers/aristmk4.cpp @@ -1805,7 +1805,7 @@ void aristmk4_state::aristmk4(machine_config &config) ppi.in_pb_callback().set(FUNC(aristmk4_state::pb1_r)); ppi.in_pc_callback().set(FUNC(aristmk4_state::pc1_r)); - via6522_device &via(VIA6522(config, "via6522_0", MAIN_CLOCK/8)); // R65C22P2 + via6522_device &via(R65C22(config, "via6522_0", MAIN_CLOCK/8)); // R65C22P2 via.readpa_handler().set(FUNC(aristmk4_state::via_a_r)); via.readpb_handler().set(FUNC(aristmk4_state::via_b_r)); via.writepa_handler().set(FUNC(aristmk4_state::via_a_w)); diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp index ee40670efd1..dc2f3665a19 100644 --- a/src/mame/drivers/atarisy1.cpp +++ b/src/mame/drivers/atarisy1.cpp @@ -721,7 +721,7 @@ void atarisy1_state::add_speech(machine_config &config) m_tms->add_route(ALL_OUTPUTS, "lspeaker", 1.0); m_tms->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - VIA6522(config, m_via, 14.318181_MHz_XTAL/8); + MOS6522(config, m_via, 14.318181_MHz_XTAL/8); m_via->readpa_handler().set(m_tms, FUNC(tms5220_device::status_r)); m_via->readpb_handler().set(FUNC(atarisy1_state::via_pb_r)); m_via->writepa_handler().set(m_tms, FUNC(tms5220_device::data_w)); diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp index 7f4d8036c51..7ffdb800a3a 100644 --- a/src/mame/drivers/atom.cpp +++ b/src/mame/drivers/atom.cpp @@ -5,7 +5,7 @@ Acorn Atom: Memory map. -CPU: 65C02 +CPU: 6502 0000-00ff Zero page 0100-01ff Stack 0200-1fff RAM (expansion) @@ -726,7 +726,7 @@ void atom_state::atom_common(machine_config &config) clock_device &cass_clock(CLOCK(config, "cass_clock", X2/16/13/8)); cass_clock.signal_handler().set(FUNC(atom_state::cassette_output_tick)); // 2403.846Hz - VIA6522(config, m_via, X2/4); + MOS6522(config, m_via, X2/4); m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); m_via->irq_handler().set_inputline(SY6502_TAG, M6502_IRQ_LINE); diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp index 50316e8fc54..1ba8958eaf9 100644 --- a/src/mame/drivers/ave_arb.cpp +++ b/src/mame/drivers/ave_arb.cpp @@ -269,7 +269,7 @@ void arb_state::v2(machine_config &config) M65C02(config, m_maincpu, 16_MHz_XTAL); // W65C02S6TPG-14 m_maincpu->set_addrmap(AS_PROGRAM, &arb_state::v2_map); - VIA6522(config, m_via, 16_MHz_XTAL); // W65C22S6TPG-14 + W65C22S(config, m_via, 16_MHz_XTAL); // W65C22S6TPG-14 m_via->writepa_handler().set(FUNC(arb_state::leds_w)); m_via->writepb_handler().set(FUNC(arb_state::control_w)); m_via->readpa_handler().set(FUNC(arb_state::input_r)); @@ -298,7 +298,11 @@ void arb_state::arb(machine_config &config) M6502(config.replace(), m_maincpu, 4_MHz_XTAL/2); // R6502P m_maincpu->set_addrmap(AS_PROGRAM, &arb_state::main_map); - m_via->set_clock(4_MHz_XTAL/4); // R6522P + MOS6522(config.replace(), m_via, 4_MHz_XTAL/4); // R6522P + m_via->writepa_handler().set(FUNC(arb_state::leds_w)); + m_via->writepb_handler().set(FUNC(arb_state::control_w)); + m_via->readpa_handler().set(FUNC(arb_state::input_r)); + m_via->irq_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); /* cartridge */ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "arb"); diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 46a64aa2ef0..a48bd30a15f 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -1136,7 +1136,7 @@ void bbc_state::bbca(machine_config &config) m_acia_clock->signal_handler().set(FUNC(bbc_state::write_acia_clock)); /* system via */ - VIA6522(config, m_via6522_0, 16_MHz_XTAL / 16); + MOS6522(config, m_via6522_0, 16_MHz_XTAL / 16); m_via6522_0->readpa_handler().set(FUNC(bbc_state::via_system_porta_r)); m_via6522_0->readpb_handler().set(FUNC(bbc_state::via_system_portb_r)); m_via6522_0->writepa_handler().set(FUNC(bbc_state::via_system_porta_w)); @@ -1175,7 +1175,7 @@ void bbc_state::bbcb(machine_config &config) m_tms->add_route(ALL_OUTPUTS, "mono", 1.0); /* user via */ - VIA6522(config, m_via6522_1, 16_MHz_XTAL / 16); + MOS6522(config, m_via6522_1, 16_MHz_XTAL / 16); m_via6522_1->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via6522_1->readpb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via6522_1->writepb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); @@ -1667,7 +1667,7 @@ void bbcm_state::bbcm(machine_config &config) m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc)); /* system via */ - VIA6522(config, m_via6522_0, 16_MHz_XTAL / 16); + MOS6522(config, m_via6522_0, 16_MHz_XTAL / 16); m_via6522_0->readpa_handler().set(FUNC(bbc_state::via_system_porta_r)); m_via6522_0->readpb_handler().set(FUNC(bbc_state::via_system_portb_r)); m_via6522_0->writepa_handler().set(FUNC(bbc_state::via_system_porta_w)); @@ -1675,7 +1675,7 @@ void bbcm_state::bbcm(machine_config &config) m_via6522_0->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); /* user via */ - VIA6522(config, m_via6522_1, 16_MHz_XTAL / 16); + MOS6522(config, m_via6522_1, 16_MHz_XTAL / 16); m_via6522_1->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via6522_1->readpb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via6522_1->writepb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); diff --git a/src/mame/drivers/beezer.cpp b/src/mame/drivers/beezer.cpp index 4d6a88944ce..9e6e456b886 100644 --- a/src/mame/drivers/beezer.cpp +++ b/src/mame/drivers/beezer.cpp @@ -508,7 +508,7 @@ void beezer_state::beezer(machine_config &config) m_sysbank->set_addr_width(15); m_sysbank->set_stride(0x1000); - VIA6522(config, m_via_system, XTAL(12'000'000) / 12); + MOS6522(config, m_via_system, XTAL(12'000'000) / 12); m_via_system->readpa_handler().set(FUNC(beezer_state::via_system_pa_r)); m_via_system->readpb_handler().set(FUNC(beezer_state::via_system_pb_r)); m_via_system->writepa_handler().set(FUNC(beezer_state::via_system_pa_w)); @@ -537,7 +537,7 @@ void beezer_state::beezer(machine_config &config) input_merger_device &audio_irqs(INPUT_MERGER_ANY_HIGH(config, "audio_irqs")); audio_irqs.output_handler().set_inputline(m_audiocpu, M6809_IRQ_LINE); - VIA6522(config, m_via_audio, XTAL(4'000'000) / 4); + MOS6522(config, m_via_audio, XTAL(4'000'000) / 4); m_via_audio->readpa_handler().set(FUNC(beezer_state::via_audio_pa_r)); m_via_audio->writepa_handler().set(FUNC(beezer_state::via_audio_pa_w)); m_via_audio->writepb_handler().set(FUNC(beezer_state::via_audio_pb_w)); diff --git a/src/mame/drivers/bmcbowl.cpp b/src/mame/drivers/bmcbowl.cpp index 03ac876642d..d615f34538d 100644 --- a/src/mame/drivers/bmcbowl.cpp +++ b/src/mame/drivers/bmcbowl.cpp @@ -499,7 +499,7 @@ void bmcbowl_state::bmcbowl(machine_config &config) oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50); /* via */ - via6522_device &via(VIA6522(config, "via6522_0", XTAL(3'579'545) / 4)); // clock not verified (controls music tempo) + via6522_device &via(MOS6522(config, "via6522_0", XTAL(3'579'545) / 4)); // clock not verified (controls music tempo) via.readpb_handler().set_ioport("IN3"); via.writepa_handler().set(FUNC(bmcbowl_state::via_a_out)); via.writepb_handler().set(FUNC(bmcbowl_state::via_b_out)); diff --git a/src/mame/drivers/chexx.cpp b/src/mame/drivers/chexx.cpp index a2c91723579..8b837c1d0c1 100644 --- a/src/mame/drivers/chexx.cpp +++ b/src/mame/drivers/chexx.cpp @@ -381,7 +381,7 @@ void chexx_state::chexx(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &chexx_state::mem); // via - VIA6522(config, m_via, MAIN_CLOCK/4); + MOS6522(config, m_via, MAIN_CLOCK/4); m_via->readpa_handler().set(FUNC(chexx_state::via_a_in)); m_via->readpb_handler().set(FUNC(chexx_state::via_b_in)); diff --git a/src/mame/drivers/clcd.cpp b/src/mame/drivers/clcd.cpp index aae6accb85e..2f8c678be13 100644 --- a/src/mame/drivers/clcd.cpp +++ b/src/mame/drivers/clcd.cpp @@ -667,13 +667,13 @@ void clcd_state::clcd(machine_config &config) INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", m65c02_device::IRQ_LINE); - via6522_device &via0(VIA6522(config, "via0", 2000000)); + via6522_device &via0(R65C22(config, "via0", 2000000)); via0.writepa_handler().set(FUNC(clcd_state::via0_pa_w)); via0.writepb_handler().set(FUNC(clcd_state::via0_pb_w)); via0.cb1_handler().set(FUNC(clcd_state::via0_cb1_w)); via0.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); - via6522_device &via1(VIA6522(config, "via1", 2000000)); + via6522_device &via1(R65C22(config, "via1", 2000000)); via1.writepa_handler().set(FUNC(clcd_state::via1_pa_w)); via1.writepb_handler().set(FUNC(clcd_state::via1_pb_w)); via1.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); diff --git a/src/mame/drivers/cms.cpp b/src/mame/drivers/cms.cpp index a6ca7622d3c..f80fc0bf391 100644 --- a/src/mame/drivers/cms.cpp +++ b/src/mame/drivers/cms.cpp @@ -164,7 +164,7 @@ void cms_state::cms6502(machine_config &config) INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6502_IRQ_LINE); - VIA6522(config, m_via, 1_MHz_XTAL); + MOS6522(config, m_via, 1_MHz_XTAL); m_via->irq_handler().set("irqs", FUNC(input_merger_device::in_w<0>)); M3002(config, "rtc", 32.768_kHz_XTAL); diff --git a/src/mame/drivers/concept.cpp b/src/mame/drivers/concept.cpp index edb2b62c563..f4f8f8c9f7f 100644 --- a/src/mame/drivers/concept.cpp +++ b/src/mame/drivers/concept.cpp @@ -240,7 +240,7 @@ void concept_state::concept(machine_config &config) MM58174(config, m_mm58174, 32.768_kHz_XTAL); /* via */ - VIA6522(config, m_via0, 16.364_MHz_XTAL / 16); + MOS6522(config, m_via0, 16.364_MHz_XTAL / 16); m_via0->readpa_handler().set(FUNC(concept_state::via_in_a)); m_via0->readpb_handler().set(FUNC(concept_state::via_in_b)); m_via0->writepa_handler().set(FUNC(concept_state::via_out_a)); diff --git a/src/mame/drivers/cops.cpp b/src/mame/drivers/cops.cpp index 049a19e3328..f9167cd1f5a 100644 --- a/src/mame/drivers/cops.cpp +++ b/src/mame/drivers/cops.cpp @@ -915,7 +915,7 @@ void cops_state::base(machine_config &config) screen.set_screen_update("laserdisc", FUNC(laserdisc_device::screen_update)); /* via */ - via6522_device &via1(VIA6522(config, "via6522_1", MAIN_CLOCK/2)); + via6522_device &via1(MOS6522(config, "via6522_1", MAIN_CLOCK/2)); via1.irq_handler().set(FUNC(cops_state::via1_irq)); via1.writepb_handler().set(FUNC(cops_state::via1_b_w)); via1.cb1_handler().set(FUNC(cops_state::via1_cb1_w)); @@ -934,10 +934,10 @@ void cops_state::cops(machine_config &config) base(config); m_maincpu->set_addrmap(AS_PROGRAM, &cops_state::cops_map); - via6522_device &via2(VIA6522(config, "via6522_2", MAIN_CLOCK/2)); + via6522_device &via2(MOS6522(config, "via6522_2", MAIN_CLOCK/2)); via2.irq_handler().set(FUNC(cops_state::via2_irq)); - via6522_device &via3(VIA6522(config, "via6522_3", MAIN_CLOCK/2)); + via6522_device &via3(MOS6522(config, "via6522_3", MAIN_CLOCK/2)); via3.readpa_handler().set(FUNC(cops_state::cdrom_data_r)); via3.writepa_handler().set(FUNC(cops_state::cdrom_data_w)); via3.writepb_handler().set(FUNC(cops_state::cdrom_ctrl_w)); diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp index 4ce325e34b5..17316a5b9da 100644 --- a/src/mame/drivers/ec65.cpp +++ b/src/mame/drivers/ec65.cpp @@ -233,9 +233,9 @@ void ec65_state::ec65(machine_config &config) ACIA6850(config, "fdc", 0); // used as a FDC on separate card PIA6821(config, "pia", 0); // assists 6850 - VIA6522(config, m_via0, XTAL(4'000'000) / 4); + MOS6522(config, m_via0, XTAL(4'000'000) / 4); - VIA6522(config, m_via1, XTAL(4'000'000) / 4); + MOS6522(config, m_via1, XTAL(4'000'000) / 4); mos6551_device &uart(MOS6551(config, "uart", 0)); uart.set_xtal(XTAL(1'843'200)); diff --git a/src/mame/drivers/electron.cpp b/src/mame/drivers/electron.cpp index f60a6936a19..0e971a9e4b5 100644 --- a/src/mame/drivers/electron.cpp +++ b/src/mame/drivers/electron.cpp @@ -330,7 +330,7 @@ void electronsp_state::electronsp(machine_config &config) m_romi[1]->set_device_load(FUNC(electronsp_state::rom2_load)); /* via */ - VIA6522(config, m_via, 16_MHz_XTAL / 16); + MOS6522(config, m_via, 16_MHz_XTAL / 16); m_via->readpb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_r)); m_via->writepb_handler().set(m_userport, FUNC(bbc_userport_slot_device::pb_w)); m_via->cb1_handler().set(m_userport, FUNC(bbc_userport_slot_device::write_cb1)); diff --git a/src/mame/drivers/emma2.cpp b/src/mame/drivers/emma2.cpp index 6d965780f3c..8ccad2e2f96 100644 --- a/src/mame/drivers/emma2.cpp +++ b/src/mame/drivers/emma2.cpp @@ -197,7 +197,7 @@ void emma2_state::emma2(machine_config &config) m_display->set_segmask(0xff, 0xff); /* Devices */ - VIA6522(config, m_via, 1'000'000); // #2 from cpu + MOS6522(config, m_via, 1'000'000); // #2 from cpu m_via->irq_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE); PIA6821(config, m_pia, 0); diff --git a/src/mame/drivers/enmirage.cpp b/src/mame/drivers/enmirage.cpp index 4d5a226e1d7..e67c8c7abd8 100644 --- a/src/mame/drivers/enmirage.cpp +++ b/src/mame/drivers/enmirage.cpp @@ -179,7 +179,7 @@ void enmirage_state::mirage(machine_config &config) es5503.add_route(0, "lspeaker", 1.0); es5503.add_route(1, "rspeaker", 1.0); - VIA6522(config, m_via, 1000000); + MOS6522(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); diff --git a/src/mame/drivers/epic14e.cpp b/src/mame/drivers/epic14e.cpp index 65647de0e8b..6f3eb99bf10 100644 --- a/src/mame/drivers/epic14e.cpp +++ b/src/mame/drivers/epic14e.cpp @@ -206,7 +206,7 @@ void epic14e_state::epic14e(machine_config &config) INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE); - VIA6522(config, m_via, 17.01_MHz_XTAL / 9); // SY6522A + MOS6522(config, m_via, 17.01_MHz_XTAL / 9); // SY6522A m_via->irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); I8748(config, "keybmcu", 4608000).set_disable(); diff --git a/src/mame/drivers/esprit.cpp b/src/mame/drivers/esprit.cpp index 6969eabe52e..9214f1abe97 100644 --- a/src/mame/drivers/esprit.cpp +++ b/src/mame/drivers/esprit.cpp @@ -181,7 +181,7 @@ void esprit_state::esprit3(machine_config &config) acia2.set_xtal(1.8432_MHz_XTAL); acia2.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); - via6522_device &via(VIA6522(config, "via", 17.9712_MHz_XTAL / 18)); + via6522_device &via(MOS6522(config, "via", 17.9712_MHz_XTAL / 18)); via.irq_handler().set_inputline(m_maincpu, m6502_device::NMI_LINE); via.writepb_handler().set("acia", FUNC(acia6850_device::write_rxc)).bit(7); via.writepb_handler().append("acia", FUNC(acia6850_device::write_txc)).bit(7); diff --git a/src/mame/drivers/gameplan.cpp b/src/mame/drivers/gameplan.cpp index 4659a5134e8..a2460fb8e8d 100644 --- a/src/mame/drivers/gameplan.cpp +++ b/src/mame/drivers/gameplan.cpp @@ -976,18 +976,18 @@ void gameplan_state::gameplan(machine_config &config) aysnd.add_route(ALL_OUTPUTS, "mono", 0.33); /* via */ - VIA6522(config, m_via_0, GAMEPLAN_MAIN_CPU_CLOCK); + MOS6522(config, m_via_0, GAMEPLAN_MAIN_CPU_CLOCK); m_via_0->writepa_handler().set(FUNC(gameplan_state::video_data_w)); m_via_0->writepb_handler().set(FUNC(gameplan_state::gameplan_video_command_w)); m_via_0->ca2_handler().set(FUNC(gameplan_state::video_command_trigger_w)); m_via_0->irq_handler().set(FUNC(gameplan_state::via_irq)); - VIA6522(config, m_via_1, GAMEPLAN_MAIN_CPU_CLOCK); + MOS6522(config, m_via_1, GAMEPLAN_MAIN_CPU_CLOCK); m_via_1->readpa_handler().set(FUNC(gameplan_state::io_port_r)); m_via_1->writepb_handler().set(FUNC(gameplan_state::io_select_w)); m_via_1->cb2_handler().set(FUNC(gameplan_state::coin_w)); - VIA6522(config, m_via_2, GAMEPLAN_MAIN_CPU_CLOCK); + MOS6522(config, m_via_2, GAMEPLAN_MAIN_CPU_CLOCK); m_via_2->readpb_handler().set(m_soundlatch, FUNC(generic_latch_8_device::read)); m_via_2->writepa_handler().set(FUNC(gameplan_state::audio_cmd_w)); m_via_2->ca2_handler().set(FUNC(gameplan_state::audio_trigger_w)); diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp index c1129113d35..ba41c93b42f 100644 --- a/src/mame/drivers/goupil.cpp +++ b/src/mame/drivers/goupil.cpp @@ -537,12 +537,12 @@ void goupil_base_state::base(machine_config &config) ACIA6850(config, m_acia, 0); // TODO: Is this specific to the G1? - VIA6522(config, m_via_video, CPU_CLOCK / 4); + MOS6522(config, m_via_video, CPU_CLOCK / 4); - VIA6522(config, m_via_keyb, CPU_CLOCK / 4); + MOS6522(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); + MOS6522(config, m_via_modem, CPU_CLOCK / 4); m_via_modem->irq_handler().set_inputline(m_maincpu, M6808_IRQ_LINE); /* Floppy */ diff --git a/src/mame/drivers/gts3.cpp b/src/mame/drivers/gts3.cpp index 0239e69af21..4e9019679f2 100644 --- a/src/mame/drivers/gts3.cpp +++ b/src/mame/drivers/gts3.cpp @@ -296,7 +296,7 @@ void gts3_state::gts3(machine_config &config) genpin_audio(config); - VIA6522(config, m_u4, XTAL(4'000'000) / 2); + R65C22(config, m_u4, XTAL(4'000'000) / 2); m_u4->irq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); m_u4->readpa_handler().set(FUNC(gts3_state::u4a_r)); m_u4->readpb_handler().set(FUNC(gts3_state::u4b_r)); @@ -304,7 +304,7 @@ void gts3_state::gts3(machine_config &config) //m_u4->ca2_handler().set(FUNC(gts3_state::u4ca2_w)); m_u4->cb2_handler().set(FUNC(gts3_state::nmi_w)); - VIA6522(config, m_u5, XTAL(4'000'000) / 2); + R65C22(config, m_u5, XTAL(4'000'000) / 2); m_u5->irq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); //m_u5->readpa_handler().set(FUNC(gts3_state::u5a_r)); //m_u5->readpb_handler().set(FUNC(gts3_state::u5b_r)); diff --git a/src/mame/drivers/gts3a.cpp b/src/mame/drivers/gts3a.cpp index 86a613df8b3..e70ae337197 100644 --- a/src/mame/drivers/gts3a.cpp +++ b/src/mame/drivers/gts3a.cpp @@ -371,7 +371,7 @@ void gts3a_state::gts3a(machine_config &config) /* Sound */ genpin_audio(config); - VIA6522(config, m_u4, XTAL(4'000'000) / 2); + R65C22(config, m_u4, XTAL(4'000'000) / 2); m_u4->irq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); m_u4->readpa_handler().set(FUNC(gts3a_state::u4a_r)); m_u4->readpb_handler().set(FUNC(gts3a_state::u4b_r)); @@ -379,7 +379,7 @@ void gts3a_state::gts3a(machine_config &config) //m_u4->ca2_handler().set(FUNC(gts3a_state::u4ca2_w)); m_u4->cb2_handler().set(FUNC(gts3a_state::nmi_w)); - VIA6522(config, m_u5, XTAL(4'000'000) / 2); + R65C22(config, m_u5, XTAL(4'000'000) / 2); m_u5->irq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); //m_u5->readpa_handler().set(FUNC(gts3a_state::u5a_r)); //m_u5->readpb_handler().set(FUNC(gts3a_state::u5b_r)); diff --git a/src/mame/drivers/hhtiger.cpp b/src/mame/drivers/hhtiger.cpp index 66449dbc73e..d09b83a02f6 100644 --- a/src/mame/drivers/hhtiger.cpp +++ b/src/mame/drivers/hhtiger.cpp @@ -512,7 +512,7 @@ void hhtiger_state::hhtiger(machine_config &config) m_gdc->set_draw_text(FUNC(hhtiger_state::draw_text)); m_gdc->set_screen(m_screen); - VIA6522(config, m_via[0], 16_MHz_XTAL / 16); + MOS6522(config, m_via[0], 16_MHz_XTAL / 16); m_via[0]->readpa_handler().set(FUNC(hhtiger_state::via_0_in_a)); m_via[0]->writepa_handler().set(FUNC(hhtiger_state::via_0_out_a)); m_via[0]->writepb_handler().set(FUNC(hhtiger_state::via_0_out_b)); @@ -520,7 +520,7 @@ void hhtiger_state::hhtiger(machine_config &config) m_via[0]->cb2_handler().set(FUNC(hhtiger_state::via_0_out_cb2)); m_via[0]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); - VIA6522(config, m_via[1], 16_MHz_XTAL / 16); + MOS6522(config, m_via[1], 16_MHz_XTAL / 16); m_via[1]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_via[1]->writepa_handler().set(FUNC(hhtiger_state::via_1_out_a)); m_via[1]->writepb_handler().set(FUNC(hhtiger_state::via_1_out_b)); diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp index 225cf0bf99e..50fae1f92b9 100644 --- a/src/mame/drivers/itech32.cpp +++ b/src/mame/drivers/itech32.cpp @@ -1751,7 +1751,7 @@ void itech32_state::base_devices(machine_config &config) void itech32_state::via(machine_config &config) { - VIA6522(config, m_via, SOUND_CLOCK/8); + MOS6522(config, m_via, SOUND_CLOCK/8); m_via->writepb_handler().set(FUNC(itech32_state::pia_portb_out)); m_via->irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE); } diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp index 276963c6077..21b418e8b17 100644 --- a/src/mame/drivers/itech8.cpp +++ b/src/mame/drivers/itech8.cpp @@ -1744,7 +1744,7 @@ void itech8_state::itech8_core_devices(machine_config &config) GENERIC_LATCH_8(config, m_soundlatch, 0); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, M6809_IRQ_LINE); - via6522_device &via(VIA6522(config, "via6522_0", CLOCK_8MHz/4)); + via6522_device &via(MOS6522(config, "via6522_0", CLOCK_8MHz/4)); via.writepb_handler().set(FUNC(itech8_state::pia_portb_out)); via.irq_handler().set_inputline(m_soundcpu, M6809_FIRQ_LINE); } diff --git a/src/mame/drivers/jr100.cpp b/src/mame/drivers/jr100.cpp index 3e750b71a52..0f1342e4fdf 100644 --- a/src/mame/drivers/jr100.cpp +++ b/src/mame/drivers/jr100.cpp @@ -397,7 +397,7 @@ void jr100_state::jr100(machine_config &config) GFXDECODE(config, "gfxdecode", "palette", gfx_jr100); PALETTE(config, "palette", palette_device::MONOCHROME); - VIA6522(config, m_via, XTAL(14'318'181) / 16); // see note in TODO + MOS6522(config, m_via, XTAL(14'318'181) / 16); // see note in TODO m_via->readpb_handler().set(FUNC(jr100_state::pb_r)); m_via->writepa_handler().set(FUNC(jr100_state::pa_w)); m_via->writepb_handler().set(FUNC(jr100_state::pb_w)); diff --git a/src/mame/drivers/jvh.cpp b/src/mame/drivers/jvh.cpp index ca8311c20a5..e69f8c7fca3 100644 --- a/src/mame/drivers/jvh.cpp +++ b/src/mame/drivers/jvh.cpp @@ -131,7 +131,7 @@ void jvh_state::common(machine_config &config) m6802_cpu_device &soundcpu(M6802(config, "soundcpu", XTAL(4'000'000))); soundcpu.set_addrmap(AS_PROGRAM, &jvh_state::jvh_sub_map); - via6522_device &via(VIA6522(config, "via", XTAL(4'000'000) / 4)); // MC6802 E clock + via6522_device &via(MOS6522(config, "via", XTAL(4'000'000) / 4)); // MC6802 E clock via.irq_handler().set_inputline("soundcpu", M6802_IRQ_LINE); } diff --git a/src/mame/drivers/lisa.cpp b/src/mame/drivers/lisa.cpp index 38ab487ab35..bda1882eb5c 100644 --- a/src/mame/drivers/lisa.cpp +++ b/src/mame/drivers/lisa.cpp @@ -154,14 +154,14 @@ void lisa_state::lisa(machine_config &config) SOFTWARE_LIST(config, "disk_list").set_original("lisa"); /* via */ - VIA6522(config, m_via0, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz) + MOS6522(config, m_via0, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz) m_via0->writepa_handler().set(FUNC(lisa_state::COPS_via_out_a)); m_via0->writepb_handler().set(FUNC(lisa_state::COPS_via_out_b)); m_via0->ca2_handler().set(FUNC(lisa_state::COPS_via_out_ca2)); m_via0->cb2_handler().set(FUNC(lisa_state::COPS_via_out_cb2)); m_via0->irq_handler().set(FUNC(lisa_state::COPS_via_irq_func)); - VIA6522(config, m_via1, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz) + MOS6522(config, m_via1, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz) SCC8530(config, m_scc, 7833600); } diff --git a/src/mame/drivers/lwriter.cpp b/src/mame/drivers/lwriter.cpp index 29757ff3ea9..014c69258d5 100644 --- a/src/mame/drivers/lwriter.cpp +++ b/src/mame/drivers/lwriter.cpp @@ -43,12 +43,14 @@ /* * Hardware: 68000@11.16 MHz 8530 SCC - 65C22 VIA on newer pcbs (older pcbs might have a 6523/6525 TPI but the pinout is completely different?) + "6523" VIA (actually a custom-marked Rockwell R65NC22, not to be confused with the MOS 6523/65C23 TPI; + may also be sourced as VLSI VL65C22V-02PC) 2MB DRAM 2KB SRAM X2804 EEPROM (custom marked as 335-0022) [note that technically a 2808 or 2816 can go here and will work too] 1MB ROM MMI67L401 64x4 FIFO, x2 + 342-0440-A PIC (for ADB) +------------------------------------------------------------------------------------------------------------------------+=====+ | 1 2 3 4 5 6 7 8 9 10 11 | # @@ -70,7 +72,7 @@ |H |511000| | RP2H | +--------+ +-------+ |7705| +------+ | N # | +------+ +------+ | F244 | +----+ +-----------------+ |26LS30| | # |J |511000| | 0259 | +--------+-+----------+ o------o | 338-6523 | +------+ | T # - | +------+ +------+ | TC531000 | TC531000 | | CONN | | TPI | |26LS30| | # + | +------+ +------+ | TC531000 | TC531000 | | CONN | | VIA | |26LS30| | # |K |511000| +------+ | ROM H3 | ROM L3 | +------+ | == | +-----------------+ +------+ | # | +------+ | RP2L | +----------+----------+ | F02 | | == | +-------+ | # |L |511000| +------+ +----------+----------+ +------+ | == | | LS14 | | # @@ -89,18 +91,11 @@ +------------------------------------------------------------------------------------------------------------------------+=====+ */ -#define TPI 0 //The TPI is used on the original M6009 board but the first dump is from a newer that uses a VIA - #include "emu.h" #include "cpu/m68000/m68000.h" #include "bus/rs232/rs232.h" -#include "machine/z80scc.h" - -#if TPI -#include "machine/6525tpi.h" -#else #include "machine/6522via.h" -#endif +#include "machine/z80scc.h" class lwriter_state : public driver_device { @@ -135,13 +130,7 @@ private: required_device m_maincpu; required_device m_scc; - -#if TPI -#define tpi6523_device tpi6525_device/* TODO: define a type for the TPI6523 of its own in the device header file */ - required_device m_tpi; -#else required_device m_via; -#endif uint16_t *m_dram_ptr, *m_sram_ptr, *m_rom_ptr; bool m_overlay; @@ -223,11 +212,7 @@ void lwriter_state::maincpu_map(address_map &map) map(0xa00002, 0xa00002).r(m_scc, FUNC(scc8530_device::cb_r)).mirror(0x1ffff8); map(0xa00006, 0xa00006).r(m_scc, FUNC(scc8530_device::db_r)).mirror(0x1ffff8); -#if TPI - map(0xe00010, 0xe0001f).rw("tpi", FUNC(tpi6523_device::read), FUNC(tpi6523_device::write)).umask16(0x00ff).mirror(0x17ffe0); // Used on older boards, needs proper mapping -#else map(0xe00000, 0xe0001f).m(m_via, FUNC(via6522_device::map)).umask16(0x00ff).mirror(0x17ffe0); -#endif } static INPUT_PORTS_START( lwriter ) @@ -382,10 +367,7 @@ void lwriter_state::lwriter(machine_config &config) 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 + R65NC22(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)); @@ -394,7 +376,6 @@ void lwriter_state::lwriter(machine_config &config) 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 } /* SCC init sequence diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp index 1810a154493..5e8d5f8586c 100644 --- a/src/mame/drivers/mac.cpp +++ b/src/mame/drivers/mac.cpp @@ -787,7 +787,7 @@ void mac_state::add_scsi(machine_config &config, bool cdrom) void mac_state::add_via1_adb(machine_config &config, bool macii) { - VIA6522(config, m_via1, C7M/10); + R65NC22(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(mac_state::mac_via_in_a)); if (macii) m_via1->readpb_handler().set(FUNC(mac_state::mac_via_in_b_ii)); @@ -801,7 +801,7 @@ void mac_state::add_via1_adb(machine_config &config, bool macii) void mac_state::add_via2(machine_config &config) { - VIA6522(config, m_via2, C7M/10); + R65NC22(config, m_via2, C7M/10); m_via2->readpa_handler().set(FUNC(mac_state::mac_via2_in_a)); m_via2->readpb_handler().set(FUNC(mac_state::mac_via2_in_b)); m_via2->writepa_handler().set(FUNC(mac_state::mac_via2_out_a)); @@ -932,7 +932,7 @@ void mac_state::maciifx(machine_config &config) add_base_devices(config, true, 1); add_scsi(config); - VIA6522(config, m_via1, C7M/10); + R65NC22(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(mac_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(mac_state::mac_via_in_b_ii)); m_via1->writepa_handler().set(FUNC(mac_state::mac_via_out_a)); diff --git a/src/mame/drivers/mac128.cpp b/src/mame/drivers/mac128.cpp index 0bb4525482f..96678472ace 100644 --- a/src/mame/drivers/mac128.cpp +++ b/src/mame/drivers/mac128.cpp @@ -941,7 +941,7 @@ void mac128_state::mac512ke(machine_config &config) m_scc->configure_channels(C3_7M, 0, C3_7M, 0); m_scc->out_int_callback().set(FUNC(mac128_state::set_scc_interrupt)); - VIA6522(config, m_via, 1000000); + MOS6522(config, m_via, 1000000); m_via->readpa_handler().set(FUNC(mac128_state::mac_via_in_a)); m_via->readpb_handler().set(FUNC(mac128_state::mac_via_in_b)); m_via->writepa_handler().set(FUNC(mac128_state::mac_via_out_a)); @@ -1009,10 +1009,13 @@ void mac128_state::macse(machine_config &config) m_macadb->via_data_callback().set(m_via, FUNC(via6522_device::write_cb2)); m_macadb->adb_irq_callback().set(FUNC(mac128_state::adb_irq_w)); + R65NC22(config.replace(), m_via, 1000000); + m_via->readpa_handler().set(FUNC(mac128_state::mac_via_in_a)); m_via->readpb_handler().set(FUNC(mac128_state::mac_via_in_b_se)); m_via->writepa_handler().set(FUNC(mac128_state::mac_via_out_a_se)); m_via->writepb_handler().set(FUNC(mac128_state::mac_via_out_b_se)); m_via->cb2_handler().set(m_macadb, FUNC(macadb_device::adb_data_w)); + m_via->irq_handler().set(FUNC(mac128_state::mac_via_irq)); /* internal ram */ m_ram->set_default_size("4M"); diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp index 4b1dd06c512..269b4b19568 100644 --- a/src/mame/drivers/macpci.cpp +++ b/src/mame/drivers/macpci.cpp @@ -129,7 +129,7 @@ void macpci_state::pippin(machine_config &config) RAM(config, m_ram); m_ram->set_default_size("32M"); - VIA6522(config, m_via1, C7M/10); + R65NC22(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)); diff --git a/src/mame/drivers/macprtb.cpp b/src/mame/drivers/macprtb.cpp index db39bdc4c6c..cdc6f0b1488 100644 --- a/src/mame/drivers/macprtb.cpp +++ b/src/mame/drivers/macprtb.cpp @@ -528,7 +528,7 @@ void macportable_state::macprtb(machine_config &config) SCC85C30(config, m_scc, C7M); // m_scc->intrq_callback().set(FUNC(macportable_state::set_scc_interrupt)); - VIA6522(config, m_via1, C7M/10); + R65NC22(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(macportable_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macportable_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macportable_state::mac_via_out_a)); diff --git a/src/mame/drivers/macpwrbk030.cpp b/src/mame/drivers/macpwrbk030.cpp index de727ba4c30..5c92ef275fa 100644 --- a/src/mame/drivers/macpwrbk030.cpp +++ b/src/mame/drivers/macpwrbk030.cpp @@ -867,7 +867,7 @@ void macpb030_state::macpb140(machine_config &config) SCC85C30(config, m_scc, C7M); // m_scc->intrq_callback().set(FUNC(macpb030_state::set_scc_interrupt)); - VIA6522(config, m_via1, C7M/10); + R65NC22(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(macpb030_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macpb030_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macpb030_state::mac_via_out_a)); @@ -875,7 +875,7 @@ void macpb030_state::macpb140(machine_config &config) m_via1->irq_handler().set(FUNC(macpb030_state::via_irq_w)); m_via1->cb2_handler().set(FUNC(macpb030_state::via_cb2_w)); - VIA6522(config, m_via2, C7M/10); + R65NC22(config, m_via2, C7M/10); m_via2->readpa_handler().set(FUNC(macpb030_state::mac_via2_in_a)); m_via2->readpb_handler().set(FUNC(macpb030_state::mac_via2_in_b)); m_via2->writepa_handler().set(FUNC(macpb030_state::mac_via2_out_a)); @@ -959,7 +959,7 @@ void macpb030_state::macpb160(machine_config &config) SCC85C30(config, m_scc, C7M); // m_scc->intrq_callback().set(FUNC(macpb030_state::set_scc_interrupt)); - VIA6522(config, m_via1, C7M / 10); + R65NC22(config, m_via1, C7M / 10); m_via1->readpa_handler().set(FUNC(macpb030_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macpb030_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macpb030_state::mac_via_out_a)); @@ -967,7 +967,7 @@ void macpb030_state::macpb160(machine_config &config) m_via1->irq_handler().set(FUNC(macpb030_state::via_irq_w)); m_via1->cb2_handler().set(FUNC(macpb030_state::via_cb2_w)); - VIA6522(config, m_via2, C7M / 10); + R65NC22(config, m_via2, C7M / 10); m_via2->readpa_handler().set(FUNC(macpb030_state::mac_via2_in_a)); m_via2->readpb_handler().set(FUNC(macpb030_state::mac_via2_in_b)); m_via2->writepa_handler().set(FUNC(macpb030_state::mac_via2_out_a)); diff --git a/src/mame/drivers/macquadra700.cpp b/src/mame/drivers/macquadra700.cpp index 1c68b50f296..c043c90c490 100644 --- a/src/mame/drivers/macquadra700.cpp +++ b/src/mame/drivers/macquadra700.cpp @@ -944,7 +944,7 @@ void macquadra_state::macqd700(machine_config &config) NUBUS_SLOT(config, "nbd", "nubus", mac_nubus_cards, nullptr); NUBUS_SLOT(config, "nbe", "nubus", mac_nubus_cards, nullptr); - VIA6522(config, m_via1, C7M/10); + R65NC22(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(macquadra_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macquadra_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macquadra_state::mac_via_out_a)); @@ -952,7 +952,7 @@ void macquadra_state::macqd700(machine_config &config) m_via1->irq_handler().set(FUNC(macquadra_state::mac_via_irq)); m_via1->cb2_handler().set(FUNC(macquadra_state::via_cb2_w)); - VIA6522(config, m_via2, C7M/10); + R65NC22(config, m_via2, C7M/10); m_via2->readpa_handler().set(FUNC(macquadra_state::mac_via2_in_a)); m_via2->readpb_handler().set(FUNC(macquadra_state::mac_via2_in_b)); m_via2->writepa_handler().set(FUNC(macquadra_state::mac_via2_out_a)); diff --git a/src/mame/drivers/mbc020.cpp b/src/mame/drivers/mbc020.cpp index 21cdb18b8ff..2adf1210b03 100644 --- a/src/mame/drivers/mbc020.cpp +++ b/src/mame/drivers/mbc020.cpp @@ -130,9 +130,9 @@ void mbc020_state::mbc020(machine_config &config) M6512(config, m_maincpu, 16_MHz_XTAL / 8); // SYU6512A m_maincpu->set_addrmap(AS_PROGRAM, &mbc020_state::mem_map); - VIA6522(config, "via", 16_MHz_XTAL / 8); // R6522AP + MOS6522(config, "via", 16_MHz_XTAL / 8); // R6522AP - via6522_device &extvia(VIA6522(config, "extvia", 16_MHz_XTAL / 8)); // not on main board + via6522_device &extvia(MOS6522(config, "extvia", 16_MHz_XTAL / 8)); // not on main board extvia.readpa_handler().set_ioport("PA"); mos6551_device &acia(MOS6551(config, "acia", 16_MHz_XTAL / 8)); // S6551AP diff --git a/src/mame/drivers/nsg6809.cpp b/src/mame/drivers/nsg6809.cpp index 17b89691a70..77dfe7166f1 100644 --- a/src/mame/drivers/nsg6809.cpp +++ b/src/mame/drivers/nsg6809.cpp @@ -76,7 +76,7 @@ void nsg6809_state::pitchhit(machine_config &config) MC6809(config, m_maincpu, XTAL(4'000'000)); // clock buffered through 74HC4060 m_maincpu->set_addrmap(AS_PROGRAM, &nsg6809_state::main_map); - via6522_device &via(VIA6522(config, "via", XTAL(4'000'000) / 4)); + via6522_device &via(MOS6522(config, "via", XTAL(4'000'000) / 4)); via.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); mos6551_device &acia(MOS6551(config, "acia", 0)); diff --git a/src/mame/drivers/oric.cpp b/src/mame/drivers/oric.cpp index 803a2feb0dd..1910c73b5f2 100644 --- a/src/mame/drivers/oric.cpp +++ b/src/mame/drivers/oric.cpp @@ -845,7 +845,7 @@ void oric_state::oric(machine_config &config, bool add_ext) // this variable not m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); /* via */ - VIA6522(config, m_via, 12_MHz_XTAL / 12); + MOS6522(config, m_via, 12_MHz_XTAL / 12); m_via->writepa_handler().set(FUNC(oric_state::via_a_w)); m_via->writepb_handler().set(FUNC(oric_state::via_b_w)); m_via->ca2_handler().set(FUNC(oric_state::via_ca2_w)); @@ -881,7 +881,7 @@ void telestrat_state::telstrat(machine_config &config) acia.irq_handler().set(FUNC(telestrat_state::acia_irq_w)); /* via */ - VIA6522(config, m_via2, 12_MHz_XTAL / 12); + MOS6522(config, m_via2, 12_MHz_XTAL / 12); m_via2->writepa_handler().set(FUNC(telestrat_state::via2_a_w)); m_via2->writepb_handler().set(FUNC(telestrat_state::via2_b_w)); m_via2->ca2_handler().set(FUNC(telestrat_state::via2_ca2_w)); diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp index f411209ca49..c6520fffa3e 100644 --- a/src/mame/drivers/pet.cpp +++ b/src/mame/drivers/pet.cpp @@ -1663,7 +1663,7 @@ void pet_state::base_pet_devices(machine_config &config, const char *default_dri PALETTE(config, m_palette, palette_device::MONOCHROME); - VIA6522(config, m_via, XTAL(16'000'000)/16); + MOS6522(config, m_via, XTAL(16'000'000)/16); m_via->readpb_handler().set(FUNC(pet_state::via_pb_r)); m_via->writepa_handler().set(FUNC(pet_state::via_pa_w)); m_via->writepb_handler().set(FUNC(pet_state::via_pb_w)); diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp index 68429d406d0..7bb9cdee1c7 100644 --- a/src/mame/drivers/pntnpuzl.cpp +++ b/src/mame/drivers/pntnpuzl.cpp @@ -360,7 +360,7 @@ void pntnpuzl_state::pntnpuzl(machine_config &config) EEPROM_93C46_16BIT(config, "eeprom"); - VIA6522(config, m_via, 12_MHz_XTAL / 10); + MOS6522(config, m_via, 12_MHz_XTAL / 10); m_via->readpa_handler().set_ioport("IN2"); m_via->readpb_handler().set_ioport("IN1"); m_via->writepb_handler().set("eeprom", FUNC(eeprom_serial_93cxx_device::di_write)).bit(4); diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp index 71c8d1e1278..11b56579d81 100644 --- a/src/mame/drivers/rmnimbus.cpp +++ b/src/mame/drivers/rmnimbus.cpp @@ -185,7 +185,7 @@ void rmnimbus_state::nimbus(machine_config &config) EEPROM_93C06_16BIT(config, m_eeprom); - VIA6522(config, m_via, 1000000); + MOS6522(config, m_via, 1000000); m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::write)); m_via->writepb_handler().set(FUNC(rmnimbus_state::nimbus_via_write_portb)); m_via->ca2_handler().set(m_centronics, FUNC(centronics_device::write_strobe)); diff --git a/src/mame/drivers/saitek_intchess.cpp b/src/mame/drivers/saitek_intchess.cpp index 04c5e030b28..9901fe598b8 100644 --- a/src/mame/drivers/saitek_intchess.cpp +++ b/src/mame/drivers/saitek_intchess.cpp @@ -297,7 +297,7 @@ void intchess_state::intchess(machine_config &config) M6502(config, m_maincpu, 4.433619_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &intchess_state::main_map); - VIA6522(config, m_via, 4.433619_MHz_XTAL / 4); // DDRA = 0xff, DDRB = 0xef + MOS6522(config, m_via, 4.433619_MHz_XTAL / 4); // DDRA = 0xff, DDRB = 0xef m_via->writepa_handler().set(FUNC(intchess_state::seg_w)); m_via->writepb_handler().set(FUNC(intchess_state::control_w)); m_via->readpb_handler().set(FUNC(intchess_state::control_r)); diff --git a/src/mame/drivers/saitek_ssystem3.cpp b/src/mame/drivers/saitek_ssystem3.cpp index ae504cc2138..d65e8c30c98 100644 --- a/src/mame/drivers/saitek_ssystem3.cpp +++ b/src/mame/drivers/saitek_ssystem3.cpp @@ -461,7 +461,7 @@ void ssystem3_state::ssystem4(machine_config &config) M6502(config, m_maincpu, 4_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &ssystem3_state::ssystem4_map); - VIA6522(config, m_via, 4_MHz_XTAL / 2); + MOS6522(config, m_via, 4_MHz_XTAL / 2); m_via->writepa_handler().set(FUNC(ssystem3_state::input_w)); m_via->readpa_handler().set(FUNC(ssystem3_state::input_r)); m_via->writepb_handler().set(FUNC(ssystem3_state::control_w)); diff --git a/src/mame/drivers/shine.cpp b/src/mame/drivers/shine.cpp index 4988a4e449a..fd4752cc16e 100644 --- a/src/mame/drivers/shine.cpp +++ b/src/mame/drivers/shine.cpp @@ -263,13 +263,13 @@ void shine_state::shine(machine_config &config) m_ram->set_default_size("32K"); m_ram->set_extra_options("16K"); - VIA6522(config, m_via[0], 1000000); + MOS6522(config, m_via[0], 1000000); m_via[0]->readpa_handler().set(FUNC(shine_state::via0_pa_r)); m_via[0]->writepb_handler().set(FUNC(shine_state::via0_pb_w)); m_via[0]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); m_via[0]->cb2_handler().set(m_speaker, FUNC(speaker_sound_device::level_w)); - VIA6522(config, m_via[1], 1000000); + MOS6522(config, m_via[1], 1000000); m_via[1]->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp index 678d9e8df51..ad475ac745c 100644 --- a/src/mame/drivers/swtpc09.cpp +++ b/src/mame/drivers/swtpc09.cpp @@ -552,7 +552,7 @@ void swtpc09_state::swtpc09d3(machine_config &config) HARDDISK(config, "hdc:2", 0); HARDDISK(config, "hdc:3", 0); - via6522_device &via(VIA6522(config, "via", 4_MHz_XTAL / 4)); + via6522_device &via(MOS6522(config, "via", 4_MHz_XTAL / 4)); via.readpa_handler().set(FUNC(swtpc09_state::dmaf3_via_read_porta)); via.readpb_handler().set(FUNC(swtpc09_state::dmaf3_via_read_portb)); via.writepa_handler().set(FUNC(swtpc09_state::dmaf3_via_write_porta)); diff --git a/src/mame/drivers/swyft.cpp b/src/mame/drivers/swyft.cpp index a4d20d070d4..43d51e032ad 100644 --- a/src/mame/drivers/swyft.cpp +++ b/src/mame/drivers/swyft.cpp @@ -768,7 +768,7 @@ void swyft_state::swyft(machine_config &config) clock_device &acia_clock(CLOCK(config, "acia_clock", (XTAL(15'897'600)/2)/5)); // out e clock from 68008, ~ 10in clocks per out clock acia_clock.signal_handler().set(FUNC(swyft_state::write_acia_clock)); - via6522_device &via0(VIA6522(config, "via6522_0", (XTAL(15'897'600)/2)/5)); // out e clock from 68008 + via6522_device &via0(MOS6522(config, "via6522_0", (XTAL(15'897'600)/2)/5)); // out e clock from 68008 via0.readpa_handler().set(FUNC(swyft_state::via0_pa_r)); via0.readpb_handler().set(FUNC(swyft_state::via0_pb_r)); via0.writepa_handler().set(FUNC(swyft_state::via0_pa_w)); @@ -778,7 +778,7 @@ void swyft_state::swyft(machine_config &config) via0.cb2_handler().set(FUNC(swyft_state::via0_cb2_w)); via0.irq_handler().set("viairq", FUNC(input_merger_device::in_w<0>)); - via6522_device &via1(VIA6522(config, "via6522_1", (XTAL(15'897'600)/2)/5)); // out e clock from 68008 + via6522_device &via1(MOS6522(config, "via6522_1", (XTAL(15'897'600)/2)/5)); // out e clock from 68008 via1.readpa_handler().set(FUNC(swyft_state::via1_pa_r)); via1.readpb_handler().set(FUNC(swyft_state::via1_pb_r)); via1.writepa_handler().set(FUNC(swyft_state::via1_pa_w)); diff --git a/src/mame/drivers/sym1.cpp b/src/mame/drivers/sym1.cpp index f0aefa2a898..ce434444478 100644 --- a/src/mame/drivers/sym1.cpp +++ b/src/mame/drivers/sym1.cpp @@ -396,13 +396,13 @@ void sym1_state::sym1(machine_config &config) m_ttl74145->output_line_callback<6>().set("speaker", FUNC(speaker_sound_device::level_w)); // lines 7-9 not connected - via6522_device &via1(VIA6522(config, "via1", SYM1_CLOCK)); + via6522_device &via1(MOS6522(config, "via1", SYM1_CLOCK)); via1.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); via1.ca2_handler().set(FUNC(sym1_state::via1_ca2_w)); - VIA6522(config, "via2", SYM1_CLOCK).irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); + MOS6522(config, "via2", SYM1_CLOCK).irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); - via6522_device &via3(VIA6522(config, "via3", SYM1_CLOCK)); + via6522_device &via3(MOS6522(config, "via3", SYM1_CLOCK)); via3.writepa_handler().set(FUNC(sym1_state::via3_a_w)); via3.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<2>)); diff --git a/src/mame/drivers/textelcomp.cpp b/src/mame/drivers/textelcomp.cpp index 6a22919e773..1bc042d9464 100644 --- a/src/mame/drivers/textelcomp.cpp +++ b/src/mame/drivers/textelcomp.cpp @@ -323,30 +323,30 @@ INPUT_PORTS_END void textelcomp_state::textelcomp(machine_config &config) { - M65SC02(config, m_maincpu, 3.6864_MHz_XTAL / 2); // GS65SC02P-2 (clock not verified) + M65SC02(config, m_maincpu, 3.6864_MHz_XTAL / 2); // G65SC02P-2 (clock not verified) m_maincpu->set_addrmap(AS_PROGRAM, &textelcomp_state::mem_map); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m65sc02_device::IRQ_LINE); - via6522_device &via0(VIA6522(config, "via0", 3.6864_MHz_XTAL / 2)); // GS65SC22P-2 + via6522_device &via0(R65C22(config, "via0", 3.6864_MHz_XTAL / 2)); // G65SC22P-2 via0.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<0>)); - VIA6522(config, "via1", 3.6864_MHz_XTAL / 2); // GS65SC22P-2 + R65C22(config, "via1", 3.6864_MHz_XTAL / 2); // G65SC22P-2 // IRQ might be connected on hardware, but is never enabled - via6522_device &via2(VIA6522(config, "via2", 3.6864_MHz_XTAL / 2)); // GS65SC22P-2 + via6522_device &via2(R65C22(config, "via2", 3.6864_MHz_XTAL / 2)); // G65SC22P-2 via2.readpa_handler().set(FUNC(textelcomp_state::keyboard_r)); via2.writepb_handler().set(FUNC(textelcomp_state::keyscan_w)); via2.cb1_handler().set(FUNC(textelcomp_state::shift_clock_w)); via2.cb2_handler().set(FUNC(textelcomp_state::shift_data_w)); - via6522_device &via3(VIA6522(config, "via3", 3.6864_MHz_XTAL / 2)); // GS65SC22P-2 + via6522_device &via3(R65C22(config, "via3", 3.6864_MHz_XTAL / 2)); // G65SC22P-2 via3.writepa_handler().set(FUNC(textelcomp_state::rtc_w)); via3.ca2_handler().set(m_rtc, FUNC(msm58321_device::cs2_w)).invert(); via3.ca2_handler().append(m_rtc, FUNC(msm58321_device::stop_w)).invert(); // TODO: PB7 toggling generates beeps? - mos6551_device &acia(MOS6551(config, "acia", 3.6864_MHz_XTAL / 2)); // GS65SC51P-2 + mos6551_device &acia(MOS6551(config, "acia", 3.6864_MHz_XTAL / 2)); // G65SC51P-2 acia.set_xtal(3.6864_MHz_XTAL / 2); acia.irq_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); diff --git a/src/mame/drivers/trvquest.cpp b/src/mame/drivers/trvquest.cpp index 303ac7fc8b7..3c7e64e2218 100644 --- a/src/mame/drivers/trvquest.cpp +++ b/src/mame/drivers/trvquest.cpp @@ -177,17 +177,17 @@ void trvquest_state::trvquest(machine_config &config) AY8910(config, "ay2", XTAL(6'000'000)/2).add_route(ALL_OUTPUTS, "mono", 0.25); /* via */ - VIA6522(config, m_via_0, XTAL(6'000'000)/4); + MOS6522(config, m_via_0, XTAL(6'000'000)/4); m_via_0->writepa_handler().set(FUNC(trvquest_state::video_data_w)); m_via_0->writepb_handler().set(FUNC(trvquest_state::gameplan_video_command_w)); m_via_0->ca2_handler().set(FUNC(trvquest_state::video_command_trigger_w)); - VIA6522(config, m_via_1, XTAL(6'000'000)/4); + MOS6522(config, m_via_1, XTAL(6'000'000)/4); m_via_1->readpa_handler().set_ioport("IN0"); m_via_1->readpb_handler().set_ioport("IN1"); m_via_1->ca2_handler().set(FUNC(trvquest_state::coin_w)); - VIA6522(config, m_via_2, XTAL(6'000'000)/4); + MOS6522(config, m_via_2, XTAL(6'000'000)/4); m_via_2->readpa_handler().set_ioport("UNK"); m_via_2->readpb_handler().set_ioport("DSW"); m_via_2->ca2_handler().set(FUNC(trvquest_state::misc_w)); diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp index 3db629e060c..1efd7691227 100644 --- a/src/mame/drivers/tv950.cpp +++ b/src/mame/drivers/tv950.cpp @@ -304,7 +304,7 @@ void tv950_state::tv950(machine_config &config) m_crtc->out_vsync_callback().set(FUNC(tv950_state::crtc_vs_w)); m_crtc->set_screen(nullptr); - VIA6522(config, m_via, MASTER_CLOCK/14); + MOS6522(config, m_via, MASTER_CLOCK/14); //m_via->irq_handler().set_inputline(m_maincpu, M6502_NMI_LINE); m_via->writepa_handler().set(FUNC(tv950_state::via_a_w)); m_via->writepb_handler().set(FUNC(tv950_state::via_b_w)); diff --git a/src/mame/drivers/ultim809.cpp b/src/mame/drivers/ultim809.cpp index 38ca62a6179..8f7e2220cc8 100644 --- a/src/mame/drivers/ultim809.cpp +++ b/src/mame/drivers/ultim809.cpp @@ -139,7 +139,8 @@ void ultim809_state::ultim809(machine_config &config) m_crtc->int_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); SCREEN(config, "screen", SCREEN_TYPE_RASTER); - VIA6522(config, m_via, 8000000 / 4); + // TBD: what type of VIA is this? It replaced a MC68B21P at some point in development. + MOS6522(config, m_via, 8000000 / 4); // Memory banking: up to 32 banks with inbuilt U8, or replace it with external memory to get the full 4 MB m_via->writepa_handler().set([this] (u8 data) { m_membank = data & 0x1F; }); // memory banking //m_via->readpb_handler().set(FUNC(ultim809_state::portb_r)); // serial diff --git a/src/mame/drivers/vectrex.cpp b/src/mame/drivers/vectrex.cpp index bbb5ddf98e1..0556d7d6b74 100644 --- a/src/mame/drivers/vectrex.cpp +++ b/src/mame/drivers/vectrex.cpp @@ -118,7 +118,7 @@ void vectrex_base_state::vectrex_base(machine_config &config) m_ay8912->add_route(ALL_OUTPUTS, "speaker", 0.2); /* via */ - VIA6522(config, m_via6522_0, 6_MHz_XTAL / 4); + MOS6522(config, m_via6522_0, 6_MHz_XTAL / 4); m_via6522_0->readpa_handler().set(FUNC(vectrex_base_state::vectrex_via_pa_r)); m_via6522_0->readpb_handler().set(FUNC(vectrex_base_state::vectrex_via_pb_r)); m_via6522_0->writepa_handler().set(FUNC(vectrex_base_state::v_via_pa_w)); diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp index 2e37027a7d6..b3b030a876d 100644 --- a/src/mame/drivers/vic20.cpp +++ b/src/mame/drivers/vic20.cpp @@ -861,7 +861,7 @@ void vic20_state::add_clocked_devices(machine_config &config, uint32_t clock) M6502(config, m_maincpu, clock); m_maincpu->set_addrmap(AS_PROGRAM, &vic20_state::vic20_mem); - VIA6522(config, m_via1, clock); + MOS6522(config, m_via1, clock); m_via1->readpa_handler().set(FUNC(vic20_state::via1_pa_r)); m_via1->writepa_handler().set(FUNC(vic20_state::via1_pa_w)); m_via1->writepb_handler().set(FUNC(vic20_state::via1_pb_w)); @@ -870,7 +870,7 @@ void vic20_state::add_clocked_devices(machine_config &config, uint32_t clock) m_via1->cb2_handler().set(m_user, FUNC(pet_user_port_device::write_m)); m_via1->irq_handler().set_inputline(m_maincpu, M6502_NMI_LINE); - VIA6522(config, m_via2, clock); + MOS6522(config, m_via2, clock); m_via2->readpa_handler().set(FUNC(vic20_state::via2_pa_r)); m_via2->readpb_handler().set(FUNC(vic20_state::via2_pb_r)); m_via2->writepb_handler().set(FUNC(vic20_state::via2_pb_w)); diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp index b42e75619b5..bb12a1ae6ae 100644 --- a/src/mame/drivers/victor9k.cpp +++ b/src/mame/drivers/victor9k.cpp @@ -731,19 +731,19 @@ void victor9k_state::victor9k(machine_config &config) m_ssda->sm_dtr_callback().set(FUNC(victor9k_state::ssda_sm_dtr_w)); m_ssda->irq_callback().set(FUNC(victor9k_state::ssda_irq_w)); - VIA6522(config, m_via1, XTAL(30'000'000)/30); + MOS6522(config, m_via1, XTAL(30'000'000)/30); m_via1->readpa_handler().set(IEEE488_TAG, FUNC(ieee488_device::dio_r)); m_via1->writepa_handler().set(FUNC(victor9k_state::via1_pa_w)); m_via1->writepb_handler().set(FUNC(victor9k_state::via1_pb_w)); m_via1->cb2_handler().set(FUNC(victor9k_state::codec_vol_w)); m_via1->irq_handler().set(FUNC(victor9k_state::via1_irq_w)); - VIA6522(config, m_via2, XTAL(30'000'000)/30); + MOS6522(config, m_via2, XTAL(30'000'000)/30); m_via2->writepa_handler().set(FUNC(victor9k_state::via2_pa_w)); m_via2->writepb_handler().set(FUNC(victor9k_state::via2_pb_w)); m_via2->irq_handler().set(FUNC(victor9k_state::via2_irq_w)); - VIA6522(config, m_via3, XTAL(30'000'000)/30); + MOS6522(config, m_via3, XTAL(30'000'000)/30); m_via3->writepb_handler().set(FUNC(victor9k_state::via3_pb_w)); m_via3->irq_handler().set(FUNC(victor9k_state::via3_irq_w)); diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp index de2d117124b..65c330c3a27 100644 --- a/src/mame/drivers/wicat.cpp +++ b/src/mame/drivers/wicat.cpp @@ -640,7 +640,7 @@ void wicat_state::wicat(machine_config &config) M68000(config, m_maincpu, 8_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &wicat_state::main_mem); - VIA6522(config, m_via, 8_MHz_XTAL); + MOS6522(config, m_via, 8_MHz_XTAL); m_via->writepa_handler().set(FUNC(wicat_state::via_a_w)); m_via->writepb_handler().set(FUNC(wicat_state::via_b_w)); m_via->irq_handler().set_inputline(m_maincpu, M68K_IRQ_1); diff --git a/src/mame/machine/victor9k_fdc.cpp b/src/mame/machine/victor9k_fdc.cpp index 277a276ac47..e67359a7853 100644 --- a/src/mame/machine/victor9k_fdc.cpp +++ b/src/mame/machine/victor9k_fdc.cpp @@ -169,7 +169,7 @@ void victor_9000_fdc_device::device_add_mconfig(machine_config &config) m_maincpu->t1_in_cb().set(FUNC(victor_9000_fdc_device::tach1_r)); m_maincpu->bus_out_cb().set(FUNC(victor_9000_fdc_device::da_w)); - VIA6522(config, m_via4, XTAL(30'000'000)/30); + MOS6522(config, m_via4, XTAL(30'000'000)/30); m_via4->readpa_handler().set(FUNC(victor_9000_fdc_device::via4_pa_r)); m_via4->writepa_handler().set(FUNC(victor_9000_fdc_device::via4_pa_w)); m_via4->readpb_handler().set(FUNC(victor_9000_fdc_device::via4_pb_r)); @@ -177,12 +177,12 @@ void victor_9000_fdc_device::device_add_mconfig(machine_config &config) m_via4->ca2_handler().set(FUNC(victor_9000_fdc_device::wrsync_w)); m_via4->irq_handler().set(FUNC(victor_9000_fdc_device::via4_irq_w)); - VIA6522(config, m_via5, XTAL(30'000'000)/30); + MOS6522(config, m_via5, XTAL(30'000'000)/30); m_via5->irq_handler().set(FUNC(victor_9000_fdc_device::via5_irq_w)); m_via5->readpa_handler().set(FUNC(victor_9000_fdc_device::via5_pa_r)); m_via5->writepb_handler().set(FUNC(victor_9000_fdc_device::via5_pb_w)); - VIA6522(config, m_via6, XTAL(30'000'000)/30); + MOS6522(config, m_via6, XTAL(30'000'000)/30); m_via6->readpa_handler().set(FUNC(victor_9000_fdc_device::via6_pa_r)); m_via6->readpb_handler().set(FUNC(victor_9000_fdc_device::via6_pb_r)); m_via6->writepa_handler().set(FUNC(victor_9000_fdc_device::via6_pa_w)); -- cgit v1.2.3