via6522: Eliminate truly ancient hack to default clock to that of first CPU (nw)

All VIAs in MAME now have properly configured clocks.
This commit is contained in:
AJR 2017-12-07 20:51:28 -05:00
parent a90412feaf
commit e23e8c432f
17 changed files with 72 additions and 63 deletions

View File

@ -219,5 +219,6 @@ SLOT_INTERFACE_START( vic20_expansion_cards )
// the following need ROMs from the software list
SLOT_INTERFACE_INTERNAL("standard", VIC20_STD)
SLOT_INTERFACE_INTERNAL("ieee488", VIC1112)
MCFG_SLOT_OPTION_CLOCK("ieee488", DERIVED_CLOCK(1, 1))
SLOT_INTERFACE_INTERNAL("megacart", VIC20_MEGACART)
SLOT_INTERFACE_END

View File

@ -98,12 +98,12 @@ WRITE_LINE_MEMBER( vic1112_device::via1_irq_w )
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( vic1112_device::device_add_mconfig )
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, DERIVED_CLOCK(1, 1))
MCFG_VIA6522_READPB_HANDLER(READ8(vic1112_device, via0_pb_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic1112_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(vic1112_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, DERIVED_CLOCK(1, 1))
MCFG_VIA6522_READPB_HANDLER(DEVREAD8(IEEE488_TAG, ieee488_device, dio_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(IEEE488_TAG, ieee488_device, dio_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(IEEE488_TAG, ieee488_device, atn_w))

View File

@ -4,9 +4,6 @@
Rockwell 6522 VIA interface and emulation
This function emulates the functionality of up to 8 6522
versatile interface adapters.
This is based on the M6821 emulation in MAME.
To do:
@ -211,12 +208,6 @@ void via6522_device::device_start()
m_shift_timer = timer_alloc(TIMER_SHIFT);
m_shift_irq_timer = timer_alloc(TIMER_SHIFT_IRQ);
/* Default clock is from CPU1 */
if (clock() == 0)
{
set_unscaled_clock(machine().firstcpu->clock());
}
/* save state register */
save_item(NAME(m_in_a));
save_item(NAME(m_in_ca1));

View File

@ -206,7 +206,7 @@ static MACHINE_CONFIG_START( aim65 )
MCFG_MOS6530n_IN_PB_CB(READ8(aim65_state, aim65_riot_b_r))
MCFG_MOS6530n_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, AIM65_CLOCK)
MCFG_VIA6522_READPB_HANDLER(READ8(aim65_state, aim65_pb_r))
// in CA1 printer ready?
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(aim65_state, aim65_pb_w))
@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( aim65 )
// out CB2 turn printer on
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_1", VIA6522, AIM65_CLOCK)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("pia6821", PIA6821, 0)

View File

@ -122,9 +122,9 @@ static MACHINE_CONFIG_START( aim65_40 )
/* sound hardware */
/* devices */
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 0)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 1000000)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 1000000)
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 1000000)
MCFG_DEVICE_ADD(M6551_TAG, MOS6551, 0)
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))

View File

@ -1747,7 +1747,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(aristmk4_state::aristmk4_pf)
static MACHINE_CONFIG_START( aristmk4 )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) // 1.5mhz
MCFG_CPU_ADD("maincpu", M6809, MAIN_CLOCK/8) // M68B09E @ 1.5 MHz
MCFG_CPU_PROGRAM_MAP(aristmk4_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", aristmk4_state, irq0_line_hold)
@ -1772,7 +1772,7 @@ static MACHINE_CONFIG_START( aristmk4 )
MCFG_I8255_IN_PORTB_CB(READ8(aristmk4_state, pb1_r))
MCFG_I8255_IN_PORTC_CB(READ8(aristmk4_state, pc1_r))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0) /* 1 MHz.(only 1 or 2 MHz.are valid) */
MCFG_DEVICE_ADD("via6522_0", VIA6522, MAIN_CLOCK/8) // R65C22P2
MCFG_VIA6522_READPA_HANDLER(READ8(aristmk4_state, via_a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(aristmk4_state, via_b_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(aristmk4_state, via_a_w))

View File

@ -795,7 +795,7 @@ static MACHINE_CONFIG_START( atarisy1 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
/* via */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, ATARI_CLOCK_14MHz/8)
MCFG_VIA6522_READPA_HANDLER(READ8(atarisy1_state, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(atarisy1_state, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(atarisy1_state, via_pa_w))

View File

@ -915,7 +915,7 @@ DRIVER_INIT_MEMBER(cops_state,cops)
static MACHINE_CONFIG_START( cops )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2)
MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(cops_map)
/* video hardware */
@ -923,15 +923,15 @@ static MACHINE_CONFIG_START( cops )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
/* via */
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_1", VIA6522, MAIN_CLOCK/2)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via1_irq))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, via1_b_w))
MCFG_VIA6522_CB1_HANDLER(WRITE8(cops_state, via1_cb1_w))
MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_2", VIA6522, MAIN_CLOCK/2)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via2_irq))
MCFG_DEVICE_ADD("via6522_3", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_3", VIA6522, MAIN_CLOCK/2)
MCFG_VIA6522_READPA_HANDLER(READ8(cops_state, cdrom_data_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cops_state, cdrom_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, cdrom_ctrl_w))
@ -951,7 +951,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( revlatns )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK/2)
MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(revlatns_map)
/* video hardware */
@ -959,7 +959,7 @@ static MACHINE_CONFIG_START( revlatns )
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
/* via */
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_1", VIA6522, MAIN_CLOCK/2)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via1_irq))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cops_state, via1_b_w))
MCFG_VIA6522_CB1_HANDLER(WRITE8(cops_state, via1_cb1_w))

View File

@ -986,18 +986,18 @@ static MACHINE_CONFIG_START( gameplan )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
/* via */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(gameplan_state, via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_1", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
MCFG_VIA6522_READPA_HANDLER(READ8(gameplan_state, io_port_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, io_select_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gameplan_state, coin_w))
MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_2", VIA6522, GAMEPLAN_MAIN_CPU_CLOCK)
MCFG_VIA6522_READPB_HANDLER(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, audio_cmd_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, audio_trigger_w))

View File

@ -552,15 +552,15 @@ static MACHINE_CONFIG_START( goupil_g1 )
MCFG_EF9364_PAGES_CNT(1);
MCFG_TIMER_DRIVER_ADD_SCANLINE("goupil_sl", goupil_g1_state, goupil_scanline, "screen", 0, 10)
MCFG_DEVICE_ADD("m_via_video", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_video", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g1_state, via_video_pba_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g1_state, via_video_pbb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g1_state, via_video_ca2_w))
MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_keyb", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_modem", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
/* Floppy */
@ -615,15 +615,15 @@ static MACHINE_CONFIG_START( goupil_g2 )
MCFG_MC6845_UPDATE_ROW_CB(goupil_g2_state, crtc_update_row)
MCFG_MC6845_ADDR_CHANGED_CB(goupil_g2_state, crtc_update_addr_changed)
MCFG_DEVICE_ADD("m_via_video", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_video", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(goupil_g2_state, via_video_pba_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(goupil_g2_state, via_video_pbb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(goupil_g2_state, via_video_ca2_w))
MCFG_DEVICE_ADD("m_via_keyb", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_keyb", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
MCFG_DEVICE_ADD("m_via_modem", VIA6522, 0)
MCFG_DEVICE_ADD("m_via_modem", VIA6522, CPU_CLOCK / 4)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M6808_IRQ_LINE))
/* Floppy */

View File

@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( gts3 )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
MCFG_DEVICE_ADD("u4", VIA6522, 0)
MCFG_DEVICE_ADD("u4", VIA6522, XTAL_4MHz / 2)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
MCFG_VIA6522_READPA_HANDLER(READ8(gts3_state, u4a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(gts3_state, u4b_r))
@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( gts3 )
//MCFG_VIA6522_CA2_HANDLER(WRITELINE(gts3_state, u4ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gts3_state, nmi_w))
MCFG_DEVICE_ADD("u5", VIA6522, 0)
MCFG_DEVICE_ADD("u5", VIA6522, XTAL_4MHz / 2)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
//MCFG_VIA6522_READPA_HANDLER(READ8(gts3_state, u5a_r))
//MCFG_VIA6522_READPB_HANDLER(READ8(gts3_state, u5b_r))

View File

@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( gts3a )
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
MCFG_DEVICE_ADD("u4", VIA6522, 0)
MCFG_DEVICE_ADD("u4", VIA6522, XTAL_4MHz / 2)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
MCFG_VIA6522_READPA_HANDLER(READ8(gts3a_state, u4a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(gts3a_state, u4b_r))
@ -365,7 +365,7 @@ static MACHINE_CONFIG_START( gts3a )
//MCFG_VIA6522_CA2_HANDLER(WRITELINE(gts3a_state, u4ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gts3a_state, nmi_w))
MCFG_DEVICE_ADD("u5", VIA6522, 0)
MCFG_DEVICE_ADD("u5", VIA6522, XTAL_4MHz / 2)
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE("maincpu", M65C02_IRQ_LINE))
//MCFG_VIA6522_READPA_HANDLER(READ8(gts3a_state, u5a_r))
//MCFG_VIA6522_READPB_HANDLER(READ8(gts3a_state, u5b_r))

View File

@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( lwriter )
#if TPI
MCFG_DEVICE_ADD("tpi", TPI6525, 0)
#else
MCFG_DEVICE_ADD("via", VIA6522, 0)
MCFG_DEVICE_ADD("via", VIA6522, CPU_CLK/10) // 68000 E clock presumed
MCFG_VIA6522_READPA_HANDLER(READ8(lwriter_state, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(lwriter_state, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(lwriter_state, via_pa_w))

View File

@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( ssystem3 )
MCFG_PALETTE_INIT_OWNER(ssystem3_state, ssystem3)
/* via */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(ssystem3_state,ssystem3_via_read_a))
MCFG_VIA6522_READPB_HANDLER(READ8(ssystem3_state,ssystem3_via_read_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(ssystem3_state,ssystem3_via_write_a))

View File

@ -200,17 +200,17 @@ static MACHINE_CONFIG_START( trvquest )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* via */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_6MHz/4)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, video_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, gameplan_video_command_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, video_command_trigger_w))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_6MHz/4)
MCFG_VIA6522_READPA_HANDLER(IOPORT("IN0"))
MCFG_VIA6522_READPB_HANDLER(IOPORT("IN1"))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, trvquest_coin_w))
MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_2", VIA6522, XTAL_6MHz/4)
MCFG_VIA6522_READPA_HANDLER(IOPORT("UNK"))
MCFG_VIA6522_READPB_HANDLER(IOPORT("DSW"))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, trvquest_misc_w))

View File

@ -97,7 +97,7 @@ SLOT_INTERFACE_END
static MACHINE_CONFIG_START( vectrex )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz / 4)
MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz / 4) // 68A09
MCFG_CPU_PROGRAM_MAP(vectrex_map)
/* video hardware */
@ -114,13 +114,13 @@ static MACHINE_CONFIG_START( vectrex )
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ADD("ay8912", AY8912, 1500000)
MCFG_SOUND_ADD("ay8912", AY8912, XTAL_6MHz / 4)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("BUTTONS"))
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(vectrex_state, vectrex_psg_port_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.2)
/* via */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_6MHz / 4)
MCFG_VIA6522_READPA_HANDLER(READ8(vectrex_state, vectrex_via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(vectrex_state, vectrex_via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vectrex_state, v_via_pa_w))

View File

@ -789,23 +789,6 @@ WRITE_LINE_MEMBER(vic20_state::write_user_cassette_switch)
static MACHINE_CONFIG_START( vic20 )
// devices
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", DEVWRITELINE(M6522_2_TAG, via6522_device, write_ca1))
MCFG_CBM_IEC_ADD("c1541")
MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(M6522_2_TAG, via6522_device, write_cb1))
@ -854,6 +837,23 @@ static MACHINE_CONFIG_DERIVED( ntsc, vic20 )
MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, MOS6560_CLOCK)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, MOS6560_CLOCK)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
// video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_MOS6560_ADD(M6560_TAG, SCREEN_TAG, MOS6560_CLOCK, vic_videoram_map, vic_colorram_map)
@ -884,6 +884,23 @@ static MACHINE_CONFIG_DERIVED( pal, vic20 )
MCFG_CPU_PROGRAM_MAP(vic20_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, MOS6561_CLOCK)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via1_pb_w))
MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_b))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_m))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_NMI_LINE))
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, MOS6561_CLOCK)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via2_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(vic20_state, via2_pb_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vic20_state, via2_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(vic20_state, via2_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(vic20_state, via2_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(INPUTLINE(M6502_TAG, M6502_IRQ_LINE))
// video/sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_MOS6561_ADD(M6560_TAG, SCREEN_TAG, MOS6561_CLOCK, vic_videoram_map, vic_colorram_map)