6522via.cpp: Distinguish some different VIA types

This commit is contained in:
AJR 2021-01-21 10:51:37 -05:00
parent 40a05f4dbc
commit 5a4d710e26
88 changed files with 269 additions and 176 deletions

View File

@ -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));

View File

@ -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));

View File

@ -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>));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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));

View File

@ -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));

View File

@ -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>));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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<IRQ_RTC>));
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<IRQ_VIA>));
/* audio hardware */

View File

@ -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<IRQ_VIA_0>));
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));

View File

@ -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));

View File

@ -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
//-------------------------------------------------

View File

@ -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
// device type definition
DECLARE_DEVICE_TYPE(VIA6522, via6522_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 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

View File

@ -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);

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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);

View File

@ -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>));

View File

@ -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

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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");

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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>));

View File

@ -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);

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -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));

View File

@ -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 */

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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));

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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<cpu_device> m_maincpu;
required_device<scc8530_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<tpi6523_device> m_tpi;
#else
required_device<via6522_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

View File

@ -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));

View File

@ -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");

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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");

View File

@ -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));

View File

@ -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));

View File

@ -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>));

View File

@ -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>));

View File

@ -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));

View File

@ -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));

View File

@ -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

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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);

View File

@ -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));