Convert VIA6522 to use DEVCB2 [smf]

This commit is contained in:
smf- 2013-12-31 08:46:37 +00:00
parent 67ebce528a
commit 72f6a2d0fb
79 changed files with 1202 additions and 1935 deletions

View File

@ -38,31 +38,20 @@ static const ay8910_interface mockingboard_ay8910_interface =
DEVCB_NULL
};
const via6522_interface mockingboard_via1_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via1_in_a), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via1_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via1_out_a), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via1_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via1_irq_w)
};
const via6522_interface mockingboard_via2_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via2_in_a), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via2_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via2_out_a), DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via2_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, a2bus_ayboard_device, via2_irq_w)
};
MACHINE_CONFIG_FRAGMENT( mockingboard )
MCFG_VIA6522_ADD(VIA1_TAG, 1022727, mockingboard_via1_intf)
MCFG_VIA6522_ADD(VIA2_TAG, 1022727, mockingboard_via2_intf)
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD(AY1_TAG, AY8913, 1022727)
@ -74,8 +63,19 @@ MACHINE_CONFIG_FRAGMENT( mockingboard )
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( phasor )
MCFG_VIA6522_ADD(VIA1_TAG, 1022727, mockingboard_via1_intf)
MCFG_VIA6522_ADD(VIA2_TAG, 1022727, mockingboard_via2_intf)
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker2", "rspeaker2")
@ -94,8 +94,19 @@ MACHINE_CONFIG_FRAGMENT( phasor )
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( echoplus )
MCFG_VIA6522_ADD(VIA1_TAG, 1022727, mockingboard_via1_intf)
MCFG_VIA6522_ADD(VIA2_TAG, 1022727, mockingboard_via2_intf)
MCFG_DEVICE_ADD(VIA1_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via1_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via1_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via1_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via1_irq_w))
MCFG_DEVICE_ADD(VIA2_TAG, VIA6522, 1022727)
MCFG_VIA6522_READPA_HANDLER(READ8(a2bus_ayboard_device, via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(a2bus_ayboard_device, via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(a2bus_ayboard_device, via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(a2bus_ayboard_device, via2_irq_w))
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD(AY1_TAG, AY8913, 1022727)

View File

@ -506,10 +506,6 @@ static ADDRESS_MAP_START( c1541pdc_mem, AS_PROGRAM, 8, c1541_prologic_dos_classi
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via0_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( base_c1541_device::via0_irq_w )
{
m_via0_irq = state;
@ -605,30 +601,6 @@ WRITE_LINE_MEMBER( base_c1541_device::via0_ca2_w )
}
}
static const via6522_interface c1541_via0_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, atn_in_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pa_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_ca2_w),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_irq_w)
};
//-------------------------------------------------
// via6522_interface c1541c_via0_intf
//-------------------------------------------------
READ8_MEMBER( c1541c_device::via0_pa_r )
{
/*
@ -649,29 +621,6 @@ READ8_MEMBER( c1541c_device::via0_pa_r )
return !floppy_tk00_r(m_image);
}
static const via6522_interface c1541c_via0_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1541c_device, via0_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, atn_in_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via0_irq_w)
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( base_c1541_device::via1_irq_w )
{
@ -738,25 +687,6 @@ WRITE8_MEMBER( base_c1541_device::via1_pb_w )
m_ga->ds_w((data >> 5) & 0x03);
}
static const via6522_interface c1541_via1_intf =
{
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via1_pb_r),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, byte_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via1_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, soe_w),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, oe_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_c1541_device, via1_irq_w)
};
//-------------------------------------------------
// C64H156_INTERFACE( ga_intf )
@ -881,8 +811,24 @@ static MACHINE_CONFIG_FRAGMENT( c1541 )
MCFG_CPU_PROGRAM_MAP(c1541_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1541_via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, c1541_via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(base_c1541_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(base_c1541_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(base_c1541_device, atn_in_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(base_c1541_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(base_c1541_device, via0_pb_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(base_c1541_device, via0_ca2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(base_c1541_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(base_c1541_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(base_c1541_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(base_c1541_device, via1_irq_w))
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface)
MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)
@ -906,9 +852,6 @@ machine_config_constructor base_c1541_device::device_mconfig_additions() const
static MACHINE_CONFIG_FRAGMENT( c1541c )
MCFG_FRAGMENT_ADD(c1541)
MCFG_DEVICE_MODIFY(M6522_0_TAG)
MCFG_DEVICE_CONFIG(c1541c_via0_intf)
MACHINE_CONFIG_END

View File

@ -51,7 +51,7 @@ public:
base_c1541_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
DECLARE_WRITE_LINE_MEMBER( via0_irq_w );
DECLARE_READ8_MEMBER( via0_pa_r );
virtual DECLARE_READ8_MEMBER( via0_pa_r );
DECLARE_WRITE8_MEMBER( via0_pa_w );
DECLARE_READ8_MEMBER( via0_pb_r );
DECLARE_WRITE8_MEMBER( via0_pb_w );
@ -143,7 +143,7 @@ public:
virtual machine_config_constructor device_mconfig_additions() const;
// not really public
DECLARE_READ8_MEMBER( via0_pa_r );
virtual DECLARE_READ8_MEMBER( via0_pa_r );
};

View File

@ -174,10 +174,6 @@ static ADDRESS_MAP_START( mini_chief_mem, AS_PROGRAM, 8, mini_chief_device )
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via0_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( c1571_device::via0_irq_w )
{
m_via0_irq = state;
@ -397,48 +393,6 @@ READ_LINE_MEMBER( c1571_device::wprt_r )
return !floppy_wpt_r(m_image);
}
static const via6522_interface via0_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, atn_in_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, wprt_r),
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pa_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_irq_w)
};
static const via6522_interface c1571cr_via0_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, atn_in_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, wprt_r),
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571cr_device, via0_pa_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571cr_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via0_irq_w)
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
READ8_MEMBER( c1571_device::via1_r )
{
@ -523,25 +477,6 @@ WRITE8_MEMBER( c1571_device::via1_pb_w )
m_ga->ds_w((data >> 5) & 0x03);
}
static const via6522_interface via1_intf =
{
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via1_pb_r),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, byte_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via1_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, soe_w),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, oe_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c1571_device, via1_irq_w)
};
//-------------------------------------------------
// MOS6526_INTERFACE( cia_intf )
@ -755,8 +690,25 @@ static MACHINE_CONFIG_FRAGMENT( c1570 )
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c1571_device, atn_in_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(c1571_device, wprt_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w))
MCFG_MOS6526_ADD(M6526_TAG, XTAL_16MHz/16, 0, WRITELINE(c1571_device, cia_irq_w))
MCFG_MOS6526_SERIAL_CALLBACKS(WRITELINE(c1571_device, cia_cnt_w), WRITELINE(c1571_device, cia_sp_w))
MCFG_MOS6526_PORT_B_CALLBACKS(READ8(c1571_device, cia_pb_r), WRITE8(c1571_device, cia_pb_w), WRITELINE(c1571_device, cia_pc_w))
@ -788,8 +740,25 @@ static MACHINE_CONFIG_FRAGMENT( c1571 )
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c1571_device, atn_in_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(c1571_device, wprt_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w))
MCFG_MOS6526_ADD(M6526_TAG, XTAL_16MHz/16, 0, WRITELINE(c1571_device, cia_irq_w))
MCFG_MOS6526_SERIAL_CALLBACKS(WRITELINE(c1571_device, cia_cnt_w), WRITELINE(c1571_device, cia_sp_w))
MCFG_MOS6526_PORT_B_CALLBACKS(READ8(c1571_device, cia_pb_r), WRITE8(c1571_device, cia_pb_w), WRITELINE(c1571_device, cia_pc_w))
@ -821,8 +790,24 @@ static MACHINE_CONFIG_FRAGMENT( c1571cr )
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1571cr_via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c1571_device, atn_in_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(c1571_device, wprt_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571cr_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571cr_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w))
//MCFG_MOS5710_ADD(M5710_TAG, XTAL_16MHz/16, 0)
@ -854,8 +839,25 @@ static MACHINE_CONFIG_FRAGMENT( mini_chief )
MCFG_CPU_PROGRAM_MAP(mini_chief_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c1571_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c1571_device, atn_in_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(c1571_device, wprt_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c1571_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c1571_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c1571_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c1571_device, via1_irq_w))
MCFG_MOS6526_ADD(M6526_TAG, XTAL_16MHz/16, 0, WRITELINE(c1571_device, cia_irq_w))
MCFG_MOS6526_SERIAL_CALLBACKS(WRITELINE(c1571_device, cia_cnt_w), WRITELINE(c1571_device, cia_sp_w))
MCFG_MOS6526_PORT_B_CALLBACKS(READ8(c1571_device, cia_pb_r), WRITE8(c1571_device, cia_pb_w), WRITELINE(c1571_device, cia_pc_w))

View File

@ -73,54 +73,6 @@ static ADDRESS_MAP_START( cmd_hd_mem, AS_PROGRAM, 8, cmd_hd_device )
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
static const via6522_interface via1_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
//-------------------------------------------------
// via6522_interface via2_intf
//-------------------------------------------------
static const via6522_interface via2_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
//-------------------------------------------------
// I8255A_INTERFACE( ppi_intf )
//-------------------------------------------------
@ -144,8 +96,8 @@ static MACHINE_CONFIG_FRAGMENT( cmd_hd )
MCFG_CPU_ADD(M6502_TAG, M6502, 2000000)
MCFG_CPU_PROGRAM_MAP(cmd_hd_mem)
MCFG_VIA6522_ADD(M6522_1_TAG, 2000000, via1_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, 2000000, via2_intf)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 2000000)
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, 2000000)
MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
//MCFG_RTC72421A_ADD(RTC72421A_TAG)

View File

@ -116,10 +116,6 @@ static ADDRESS_MAP_START( fd4000_mem, AS_PROGRAM, 8, fd4000_device )
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via_intf
//-------------------------------------------------
READ8_MEMBER( fd2000_device::via_pa_r )
{
/*
@ -201,25 +197,6 @@ WRITE8_MEMBER( fd2000_device::via_pb_w )
*/
}
static const via6522_interface via_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, fd2000_device, via_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, fd2000_device, via_pb_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, fd2000_device, via_pa_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, fd2000_device, via_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static SLOT_INTERFACE_START( fd2000_floppies )
SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // TEAC FD-235HF
SLOT_INTERFACE_END
@ -242,7 +219,12 @@ static MACHINE_CONFIG_FRAGMENT( fd2000 )
MCFG_CPU_ADD(G65SC02PI2_TAG, M65C02, XTAL_24MHz/12)
MCFG_CPU_PROGRAM_MAP(fd2000_mem)
MCFG_VIA6522_ADD(G65SC22P2_TAG, XTAL_24MHz/12, via_intf)
MCFG_DEVICE_ADD(G65SC22P2_TAG, VIA6522, XTAL_24MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(fd2000_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(fd2000_device, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(fd2000_device, via_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(fd2000_device, via_pb_w))
MCFG_DP8473_ADD(DP8473V_TAG)
MCFG_FLOPPY_DRIVE_ADD(DP8473V_TAG":0", fd2000_floppies, "35hd", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)
@ -257,7 +239,12 @@ static MACHINE_CONFIG_FRAGMENT( fd4000 )
MCFG_CPU_ADD(R65C02P4_TAG, M65C02, XTAL_24MHz/6)
MCFG_CPU_PROGRAM_MAP(fd4000_mem)
MCFG_VIA6522_ADD(G65SC22P2_TAG, XTAL_24MHz/12, via_intf)
MCFG_DEVICE_ADD(G65SC22P2_TAG, VIA6522, XTAL_24MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(fd2000_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(fd2000_device, via_pb_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(fd2000_device, via_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(fd2000_device, via_pb_w))
MCFG_PC8477A_ADD(PC8477AV1_TAG)
MCFG_FLOPPY_DRIVE_ADD(PC8477AV1_TAG":0", fd4000_floppies, "35ed", floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats)

View File

@ -121,30 +121,6 @@ static ADDRESS_MAP_START( interpod_mem, AS_PROGRAM, 8, interpod_device )
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via_intf
//-------------------------------------------------
static const via6522_interface via_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
//-------------------------------------------------
// riot6532_interface riot_intf
//-------------------------------------------------
@ -181,7 +157,7 @@ static MACHINE_CONFIG_FRAGMENT( interpod )
MCFG_CPU_ADD(R6502_TAG, M6502, 1000000)
MCFG_CPU_PROGRAM_MAP(interpod_mem)
MCFG_VIA6522_ADD(R6522_TAG, 1000000, via_intf)
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, 1000000)
MCFG_RIOT6532_ADD(R6532_TAG, 1000000, riot_intf)
MCFG_ACIA6850_ADD(MC6850_TAG, acia_intf)

View File

@ -169,10 +169,6 @@ static const mc6854_interface adlc_intf =
};
//-------------------------------------------------
// via6522_interface via_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( e01_device::via_irq_w )
{
m_via_irq = state;
@ -185,25 +181,6 @@ WRITE_LINE_MEMBER( e01_device::clk_en_w )
m_clk_en = state;
}
static const via6522_interface via_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(CENTRONICS_TAG, centronics_device, write),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, e01_device, via_irq_w)
};
//-------------------------------------------------
// wd17xx_interface fdc_intf
@ -294,7 +271,10 @@ static MACHINE_CONFIG_FRAGMENT( e01 )
MCFG_MC146818_IRQ_HANDLER(WRITELINE(e01_device, rtc_irq_w))
// devices
MCFG_VIA6522_ADD(R6522_TAG, XTAL_8MHz/4, via_intf)
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, XTAL_8MHz/4)
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(CENTRONICS_TAG, centronics_device, write))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(e01_device, via_irq_w))
MCFG_MC6854_ADD(MC6854_TAG, adlc_intf)
MCFG_WD2793x_ADD(WD2793_TAG, XTAL_8MHz/4)
MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", e01_floppies, "35dd", floppy_image_device::default_floppy_formats)

View File

@ -71,10 +71,6 @@ static ADDRESS_MAP_START( c2031_mem, AS_PROGRAM, 8, c2031_device )
ADDRESS_MAP_END
//-------------------------------------------------
// via6522_interface via0_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( c2031_device::via0_irq_w )
{
m_via0_irq = state;
@ -216,29 +212,6 @@ READ_LINE_MEMBER( c2031_device::via0_ca2_r )
return get_device_number();
}
static const via6522_interface via0_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_ca1_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_ca2_r),
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pa_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL, // PLL SYN
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via0_irq_w)
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( c2031_device::via1_irq_w )
{
@ -305,25 +278,6 @@ WRITE8_MEMBER( c2031_device::via1_pb_w )
m_ga->ds_w((data >> 5) & 0x03);
}
static const via6522_interface via1_intf =
{
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via1_pb_r),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, byte_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(C64H156_TAG, c64h156_device, yb_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via1_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, soe_w),
DEVCB_DEVICE_LINE_MEMBER(C64H156_TAG, c64h156_device, oe_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2031_device, via1_irq_w)
};
//-------------------------------------------------
// C64H156_INTERFACE( ga_intf )
@ -381,8 +335,24 @@ static MACHINE_CONFIG_FRAGMENT( c2031 )
MCFG_CPU_PROGRAM_MAP(c2031_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c2031_device, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c2031_device, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2031_device, via0_ca1_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(c2031_device, via0_ca2_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(c2031_device, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2031_device, via0_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c2031_device, via0_irq_w))
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(C64H156_TAG, c64h156_device, yb_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c2031_device, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(C64H156_TAG, c64h156_device, byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(C64H156_TAG, c64h156_device, yb_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2031_device, via1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, soe_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(C64H156_TAG, c64h156_device, oe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(c2031_device, via1_irq_w))
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c2031_floppy_interface)
MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf)

View File

@ -566,10 +566,6 @@ static const riot6532_interface riot1_intf =
};
//-------------------------------------------------
// via6522_interface via_intf um3
//-------------------------------------------------
READ8_MEMBER( c2040_device::via_pa_r )
{
/*
@ -654,29 +650,6 @@ WRITE_LINE_MEMBER( c2040_device::rw_sel_w )
m_via->write_cb1(ERROR);
}
static const via6522_interface via_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2040_device, via_pa_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, ready_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, err_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2040_device, via_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, mode_sel_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, rw_sel_w),
DEVCB_NULL
};
//-------------------------------------------------
// via6522_interface c8050_via_intf um3
//-------------------------------------------------
READ8_MEMBER( c8050_device::via_pb_r )
{
@ -739,25 +712,6 @@ WRITE8_MEMBER( c8050_device::via_pb_w )
m_bit_timer->enable(!mtr1 || !mtr0);
}
static const via6522_interface c8050_via_intf =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c2040_device, via_pa_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c8050_device, via_pb_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, ready_r),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, err_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, c8050_device, via_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, mode_sel_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, c2040_device, rw_sel_w),
DEVCB_NULL
};
//-------------------------------------------------
// mos6530_interface miot_intf uk3
@ -1097,7 +1051,14 @@ static MACHINE_CONFIG_FRAGMENT( c2040 )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c2040_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_16MHz/16, via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_16MHz/16, miot_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c2040_floppy_interface)
@ -1131,7 +1092,14 @@ static MACHINE_CONFIG_FRAGMENT( c4040 )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c2040_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_16MHz/16, via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c2040_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_16MHz/16, miot_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c4040_floppy_interface)
@ -1165,7 +1133,15 @@ static MACHINE_CONFIG_FRAGMENT( c8050 )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_12MHz/12)
MCFG_CPU_PROGRAM_MAP(c8050_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_12MHz/12, c8050_via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c8050_device, via_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8050_floppy_interface)
@ -1199,7 +1175,15 @@ static MACHINE_CONFIG_FRAGMENT( c8250 )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_12MHz/12)
MCFG_CPU_PROGRAM_MAP(c8050_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_12MHz/12, c8050_via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c8050_device, via_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8250_floppy_interface)
@ -1233,7 +1217,15 @@ static MACHINE_CONFIG_FRAGMENT( c8250lp )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_12MHz/12)
MCFG_CPU_PROGRAM_MAP(c8250lp_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_12MHz/12, c8050_via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c8050_device, via_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(c8250_floppy_interface)
@ -1267,7 +1259,15 @@ static MACHINE_CONFIG_FRAGMENT( sfd1001 )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_12MHz/12)
MCFG_CPU_PROGRAM_MAP(sfd1001_fdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_12MHz/12, c8050_via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_12MHz/12)
MCFG_VIA6522_READPA_HANDLER(READ8(c2040_device, via_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(c8050_device, via_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(c2040_device, ready_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(c2040_device, err_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(c8050_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(c2040_device, mode_sel_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(c2040_device, rw_sel_w))
MCFG_MOS6530_ADD(M6530_TAG, XTAL_12MHz/12, c8050_miot_intf)
MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c8250_floppy_interface)

View File

@ -336,10 +336,6 @@ static const riot6532_interface riot1_intf =
};
//-------------------------------------------------
// via6522_interface via_intf
//-------------------------------------------------
READ8_MEMBER( base_d9060_device::via_pb_r )
{
/*
@ -425,25 +421,6 @@ WRITE_LINE_MEMBER( base_d9060_device::req_w )
m_via->write_ca1(state);
}
static const via6522_interface via_intf =
{
DEVCB_DEVICE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_data_r),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_r),
DEVCB_DEVICE_LINE_MEMBER(SASIBUS_TAG ":host", scsicb_device, scsi_req_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, scsi_data_w),
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, via_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, ack_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, base_d9060_device, enable_w),
DEVCB_CPU_INPUT_LINE(M6502_HDC_TAG, INPUT_LINE_IRQ0)
};
//-------------------------------------------------
// MACHINE_CONFIG_FRAGMENT( d9060 )
@ -461,7 +438,15 @@ static MACHINE_CONFIG_FRAGMENT( d9060 )
MCFG_CPU_ADD(M6502_HDC_TAG, M6502, XTAL_4MHz/4)
MCFG_CPU_PROGRAM_MAP(d9060_hdc_mem)
MCFG_VIA6522_ADD(M6522_TAG, XTAL_4MHz/4, via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_4MHz/4)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(SASIBUS_TAG ":host", scsicb_device, scsi_data_r))
MCFG_VIA6522_READPB_HANDLER(READ8(base_d9060_device, via_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(SASIBUS_TAG ":host", scsicb_device, scsi_req_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(base_d9060_device, scsi_data_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(base_d9060_device, via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(base_d9060_device, ack_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(base_d9060_device, enable_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(M6502_HDC_TAG, m6502_device, irq_line))
MCFG_SCSIBUS_ADD(SASIBUS_TAG)
MCFG_SCSIDEV_ADD(SASIBUS_TAG ":harddisk0", D9060HD, SCSI_ID_0)

View File

@ -29,10 +29,6 @@
const device_type VIC1112 = &device_creator<vic1112_device>;
//-------------------------------------------------
// via6522_interface via0_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( vic1112_device::via0_irq_w )
{
m_via0_irq = state;
@ -90,29 +86,6 @@ WRITE8_MEMBER( vic1112_device::via0_pb_w )
m_bus->ndac_w(BIT(data, 2));
}
static const via6522_interface via0_intf =
{
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, vic1112_device, via0_pb_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, vic1112_device, via0_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, vic1112_device, via0_irq_w)
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( vic1112_device::via1_irq_w )
{
@ -121,33 +94,24 @@ WRITE_LINE_MEMBER( vic1112_device::via1_irq_w )
m_slot->irq_w(m_via0_irq | m_via1_irq);
}
static const via6522_interface via1_intf =
{
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, srq_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, atn_w),
DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, eoi_w),
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, vic1112_device, via1_irq_w)
};
//-------------------------------------------------
// MACHINE_DRIVER( vic1112 )
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( vic1112 )
MCFG_VIA6522_ADD(M6522_0_TAG, 0, via0_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, 0, via1_intf)
MCFG_DEVICE_ADD(M6522_0_TAG, VIA6522, 0)
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_VIA6522_READPB_HANDLER(DEVREAD8(IEEE488_TAG, ieee488_device, dio_r))
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE(IEEE488_TAG, ieee488_device, srq_r))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(IEEE488_TAG, ieee488_device, dio_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(IEEE488_TAG, ieee488_device, atn_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(IEEE488_TAG, ieee488_device, eoi_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(vic1112_device, via1_irq_w))
MCFG_CBM_IEEE488_ADD(NULL)
MCFG_IEEE488_SRQ_CALLBACK(DEVWRITELINE(M6522_1_TAG, via6522_device, write_cb1))

View File

@ -733,4 +733,9 @@ WRITE_LINE_MEMBER( m6502_device::irq_line )
set_input_line( M6502_IRQ_LINE, state );
}
WRITE_LINE_MEMBER( m6502_device::nmi_line )
{
set_input_line( M6502_NMI_LINE, state );
}
#include "cpu/m6502/m6502.inc"

View File

@ -56,6 +56,7 @@ public:
m6502_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
DECLARE_WRITE_LINE_MEMBER( irq_line );
DECLARE_WRITE_LINE_MEMBER( nmi_line );
UINT64 get_cycle();
bool get_sync() const { return sync; }

View File

@ -146,6 +146,14 @@ public:
m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
DECLARE_WRITE_LINE_MEMBER( write_irq1 );
DECLARE_WRITE_LINE_MEMBER( write_irq2 );
DECLARE_WRITE_LINE_MEMBER( write_irq3 );
DECLARE_WRITE_LINE_MEMBER( write_irq4 );
DECLARE_WRITE_LINE_MEMBER( write_irq5 );
DECLARE_WRITE_LINE_MEMBER( write_irq6 );
DECLARE_WRITE_LINE_MEMBER( write_irq7 );
void clear_all(void);
virtual UINT32 disasm_min_opcode_bytes() const { return 2; };

View File

@ -707,6 +707,41 @@ static void m68k_cause_bus_error(m68000_base_device *m68k)
m68ki_jump_vector(m68k, EXCEPTION_BUS_ERROR);
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq1 )
{
set_input_line( M68K_IRQ_1, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq2 )
{
set_input_line( M68K_IRQ_2, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq3 )
{
set_input_line( M68K_IRQ_3, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq4 )
{
set_input_line( M68K_IRQ_4, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq5 )
{
set_input_line( M68K_IRQ_5, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq6 )
{
set_input_line( M68K_IRQ_6, state );
}
WRITE_LINE_MEMBER( m68000_base_device::write_irq7 )
{
set_input_line( M68K_IRQ_7, state );
}
bool m68000_base_device::memory_translate(address_spacenum space, int intention, offs_t &address)
{
/* only applies to the program address space and only does something if the MMU's enabled */

View File

@ -112,7 +112,7 @@ inline void via6522_device::set_irq_line(int state)
{
if (m_irq != state)
{
m_irq_func(state);
m_irq_handler(state);
m_irq = state;
}
}
@ -148,61 +148,43 @@ const device_type VIA6522 = &device_creator<via6522_device>;
via6522_device::via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, VIA6522, "6522 VIA", tag, owner, clock, "via6522", __FILE__),
m_in_a_handler(*this),
m_in_b_handler(*this),
m_in_ca1_handler(*this),
m_in_cb1_handler(*this),
m_in_ca2_handler(*this),
m_in_cb2_handler(*this),
m_out_a_handler(*this),
m_out_b_handler(*this),
m_ca1_handler(*this),
m_cb1_handler(*this),
m_ca2_handler(*this),
m_cb2_handler(*this),
m_irq_handler(*this),
m_irq(CLEAR_LINE)
{
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void via6522_device::device_config_complete()
{
// inherit a copy of the static data
const via6522_interface *intf = reinterpret_cast<const via6522_interface *>(static_config());
if (intf != NULL)
*static_cast<via6522_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
memset(&m_in_a_cb, 0, sizeof(m_in_a_cb));
memset(&m_in_b_cb, 0, sizeof(m_in_b_cb));
memset(&m_in_ca1_cb, 0, sizeof(m_in_ca1_cb));
memset(&m_in_cb1_cb, 0, sizeof(m_in_cb1_cb));
memset(&m_in_ca2_cb, 0, sizeof(m_in_ca2_cb));
memset(&m_in_cb2_cb, 0, sizeof(m_in_cb2_cb));
memset(&m_out_a_cb, 0, sizeof(m_out_a_cb));
memset(&m_out_b_cb, 0, sizeof(m_out_b_cb));
memset(&m_out_ca2_cb, 0, sizeof(m_out_ca2_cb));
memset(&m_out_cb2_cb, 0, sizeof(m_out_cb2_cb));
memset(&m_irq_cb, 0, sizeof(m_irq_cb));
}
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void via6522_device::device_start()
{
m_in_a_func.resolve(m_in_a_cb, *this);
m_in_b_func.resolve(m_in_b_cb, *this);
m_in_ca1_func.resolve(m_in_ca1_cb, *this);
m_in_cb1_func.resolve(m_in_cb1_cb, *this);
m_in_ca2_func.resolve(m_in_ca2_cb, *this);
m_in_cb2_func.resolve(m_in_cb2_cb, *this);
m_out_a_func.resolve(m_out_a_cb, *this);
m_out_b_func.resolve(m_out_b_cb, *this);
m_out_ca1_func.resolve(m_out_ca1_cb, *this);
m_out_cb1_func.resolve(m_out_cb1_cb, *this);
m_out_ca2_func.resolve(m_out_ca2_cb, *this);
m_out_cb2_func.resolve(m_out_cb2_cb, *this);
m_irq_func.resolve(m_irq_cb, *this);
m_in_a_handler.resolve();
m_in_b_handler.resolve();
m_in_ca1_handler.resolve();
m_in_cb1_handler.resolve();
m_in_ca2_handler.resolve();
m_in_cb2_handler.resolve();
m_out_a_handler.resolve_safe();
m_out_b_handler.resolve_safe();
m_ca1_handler.resolve();
m_cb1_handler.resolve_safe();
m_ca2_handler.resolve_safe();
m_cb2_handler.resolve_safe();
m_irq_handler.resolve_safe();
m_t1ll = 0xf3; /* via at 0x9110 in vic20 show these values */
m_t1lh = 0xb5; /* ports are not written by kernel! */
@ -346,13 +328,13 @@ void via6522_device::shift()
m_out_cb2 = (m_sr >> 7) & 1;
m_sr = (m_sr << 1) | m_out_cb2;
m_out_cb2_func(m_out_cb2);
m_cb2_handler(m_out_cb2);
m_in_cb1=1;
/* this should be one cycle wide */
m_out_cb1_func(0);
m_out_cb1_func(1);
m_cb1_handler(0);
m_cb1_handler(1);
m_shift_counter = (m_shift_counter + 1) % 8;
@ -378,7 +360,7 @@ void via6522_device::shift()
m_out_cb2 = (m_sr >> 7) & 1;
m_sr = (m_sr << 1) | m_out_cb2;
m_out_cb2_func(m_out_cb2);
m_cb2_handler(m_out_cb2);
m_shift_counter = (m_shift_counter + 1) % 8;
@ -394,12 +376,12 @@ void via6522_device::shift()
if (SI_O2_CONTROL(m_acr) || SI_T2_CONTROL(m_acr))
{
/* this should be one cycle wide */
m_out_cb1_func(0);
m_out_cb1_func(1);
m_cb1_handler(0);
m_cb1_handler(1);
if (!m_in_cb2_func.isnull())
if (!m_in_cb2_handler.isnull())
{
m_in_cb2 = m_in_cb2_func();
m_in_cb2 = m_in_cb2_handler();
}
m_sr = (m_sr << 1) | (m_in_cb2 & 1);
@ -425,9 +407,9 @@ void via6522_device::shift()
if (SI_EXT_CONTROL(m_acr))
{
if (!m_in_cb2_func.isnull())
if (!m_in_cb2_handler.isnull())
{
m_in_cb2 = m_in_cb2_func();
m_in_cb2 = m_in_cb2_handler();
}
m_sr = (m_sr << 1) | (m_in_cb2 & 1);
@ -476,7 +458,7 @@ void via6522_device::device_timer(emu_timer &timer, device_timer_id id, int para
if (m_ddr_b)
{
UINT8 write_data = (m_out_b & m_ddr_b) | (m_ddr_b ^ 0xff);
m_out_b_func(0, write_data);
m_out_b_handler(write_data);
}
if (!(m_ifr & INT_T1))
@ -497,7 +479,7 @@ void via6522_device::device_timer(emu_timer &timer, device_timer_id id, int para
break;
case TIMER_CA2:
m_out_ca2_func(1);
m_ca2_handler(1);
m_out_ca2 = 1;
break;
}
@ -521,9 +503,9 @@ READ8_MEMBER( via6522_device::read )
{
if (m_ddr_b != 0xff)
{
if (!m_in_b_func.isnull())
if (!m_in_b_handler.isnull())
{
m_in_b = m_in_b_func(0);
m_in_b = m_in_b_handler(0);
}
else
{
@ -551,9 +533,9 @@ READ8_MEMBER( via6522_device::read )
{
if (m_ddr_a != 0xff)
{
if (!m_in_a_func.isnull())
if (!m_in_a_handler.isnull())
{
m_in_a = m_in_a_func(0);
m_in_a = m_in_a_handler(0);
}
else
{
@ -576,7 +558,7 @@ READ8_MEMBER( via6522_device::read )
if (CA2_PULSE_OUTPUT(m_pcr))
{
/* call the CA2 output function */
m_out_ca2_func(0);
m_ca2_handler(0);
m_out_ca2 = 0;
m_ca2_timer->adjust(clocks_to_attotime(1));
@ -591,7 +573,7 @@ READ8_MEMBER( via6522_device::read )
m_out_ca2 = 0;
/* call the CA2 output function */
m_out_ca2_func(0);
m_ca2_handler(0);
}
}
@ -601,9 +583,9 @@ READ8_MEMBER( via6522_device::read )
/* update the input */
if (PA_LATCH_ENABLE(m_acr) == 0)
{
if (!m_in_a_func.isnull())
if (!m_in_a_handler.isnull())
{
m_in_a = m_in_a_func(0);
m_in_a = m_in_a_handler(0);
}
else
{
@ -730,7 +712,7 @@ WRITE8_MEMBER( via6522_device::write )
if (m_ddr_b)
{
UINT8 write_data = (m_out_b & m_ddr_b) | (m_ddr_b ^ 0xff);
m_out_b_func(0, write_data);
m_out_b_handler(write_data);
}
CLR_PB_INT();
@ -745,7 +727,7 @@ WRITE8_MEMBER( via6522_device::write )
m_out_cb2 = 0;
/* call the CB2 output function */
m_out_cb2_func(0);
m_cb2_handler(0);
}
}
break;
@ -756,7 +738,7 @@ WRITE8_MEMBER( via6522_device::write )
if (m_ddr_a)
{
UINT8 write_data = (m_out_a & m_ddr_a) | (m_ddr_a ^ 0xff);
m_out_a_func(0, write_data);
m_out_a_handler(write_data);
}
CLR_PA_INT();
@ -766,7 +748,7 @@ WRITE8_MEMBER( via6522_device::write )
if (CA2_PULSE_OUTPUT(m_pcr))
{
/* call the CA2 output function */
m_out_ca2_func(0);
m_ca2_handler(0);
m_out_ca2 = 0;
m_ca2_timer->adjust(clocks_to_attotime(1));
@ -779,7 +761,7 @@ WRITE8_MEMBER( via6522_device::write )
m_out_ca2 = 0;
/* call the CA2 output function */
m_out_ca2_func(0);
m_ca2_handler(0);
}
}
@ -791,7 +773,7 @@ WRITE8_MEMBER( via6522_device::write )
if (m_ddr_a)
{
UINT8 write_data = (m_out_a & m_ddr_a) | (m_ddr_a ^ 0xff);
m_out_a_func(0, write_data);
m_out_a_handler(write_data);
}
break;
@ -805,7 +787,7 @@ WRITE8_MEMBER( via6522_device::write )
//if (m_ddr_b)
{
UINT8 write_data = (m_out_b & m_ddr_b) | (m_ddr_b ^ 0xff);
m_out_b_func(0, write_data);
m_out_b_handler(write_data);
}
}
break;
@ -819,7 +801,7 @@ WRITE8_MEMBER( via6522_device::write )
//if (m_ddr_a)
{
UINT8 write_data = (m_out_a & m_ddr_a) | (m_ddr_a ^ 0xff);
m_out_a_func(0, write_data);
m_out_a_handler(write_data);
}
}
break;
@ -847,7 +829,7 @@ WRITE8_MEMBER( via6522_device::write )
//if (m_ddr_b)
{
UINT8 write_data = (m_out_b & m_ddr_b) | (m_ddr_b ^ 0xff);
m_out_b_func(0, write_data);
m_out_b_handler(write_data);
}
}
m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY));
@ -902,13 +884,13 @@ WRITE8_MEMBER( via6522_device::write )
if (CA2_FIX_OUTPUT(data) && CA2_OUTPUT_LEVEL(data) ^ m_out_ca2)
{
m_out_ca2 = CA2_OUTPUT_LEVEL(data);
m_out_ca2_func(m_out_ca2);
m_ca2_handler(m_out_ca2);
}
if (CB2_FIX_OUTPUT(data) && CB2_OUTPUT_LEVEL(data) ^ m_out_cb2)
{
m_out_cb2 = CB2_OUTPUT_LEVEL(data);
m_out_cb2_func(m_out_cb2);
m_cb2_handler(m_out_cb2);
}
break;
@ -930,7 +912,7 @@ WRITE8_MEMBER( via6522_device::write )
//if (m_ddr_b)
{
UINT8 write_data = (m_out_b & m_ddr_b) | (m_ddr_b ^ 0xff);
m_out_b_func(0, write_data);
m_out_b_handler(write_data);
}
}
if (T1_CONTINUOUS(data))
@ -996,9 +978,9 @@ WRITE_LINE_MEMBER( via6522_device::write_ca1 )
{
if (PA_LATCH_ENABLE(m_acr))
{
if (!m_in_a_func.isnull())
if (!m_in_a_handler.isnull())
{
m_in_a = m_in_a_func(0);
m_in_a = m_in_a_handler(0);
}
else
{
@ -1018,7 +1000,7 @@ WRITE_LINE_MEMBER( via6522_device::write_ca1 )
m_out_ca2 = 1;
/* call the CA2 output function */
m_out_ca2_func(1);
m_ca2_handler(1);
}
}
}
@ -1066,9 +1048,9 @@ WRITE_LINE_MEMBER( via6522_device::write_cb1 )
{
if (PB_LATCH_ENABLE(m_acr))
{
if (!m_in_b_func.isnull())
if (!m_in_b_handler.isnull())
{
m_in_b = m_in_b_func(0);
m_in_b = m_in_b_handler(0);
}
else
{
@ -1092,7 +1074,7 @@ WRITE_LINE_MEMBER( via6522_device::write_cb1 )
m_out_cb2 = 1;
/* call the CB2 output function */
m_out_cb2_func(1);
m_cb2_handler(1);
}
}
}

View File

@ -24,32 +24,49 @@
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_VIA6522_ADD(_tag, _clock, _intrf) \
MCFG_DEVICE_ADD(_tag, VIA6522, _clock) \
MCFG_DEVICE_CONFIG(_intrf)
// TODO: REMOVE THESE
#define MCFG_VIA6522_READPA_HANDLER(_devcb) \
devcb = &via6522_device::set_readpa_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_READPB_HANDLER(_devcb) \
devcb = &via6522_device::set_readpb_handler(*device, DEVCB2_##_devcb);
// NOT USED
#define MCFG_VIA6522_READCA1_HANDLER(_devcb) \
devcb = &via6522_device::set_readca1_handler(*device, DEVCB2_##_devcb);
/***************************************************************************
MACROS / CONSTANTS
***************************************************************************/
// NOT USED
#define MCFG_VIA6522_READCB1_HANDLER(_devcb) \
devcb = &via6522_device::set_readcb1_handler(*device, DEVCB2_##_devcb);
#define VIA_PB 0
#define VIA_PA 1
#define VIA_DDRB 2
#define VIA_DDRA 3
#define VIA_T1CL 4
#define VIA_T1CH 5
#define VIA_T1LL 6
#define VIA_T1LH 7
#define VIA_T2CL 8
#define VIA_T2CH 9
#define VIA_SR 10
#define VIA_ACR 11
#define VIA_PCR 12
#define VIA_IFR 13
#define VIA_IER 14
#define VIA_PANH 15
// NOT USED
#define MCFG_VIA6522_READCA2_HANDLER(_devcb) \
devcb = &via6522_device::set_readca2_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_READCB2_HANDLER(_devcb) \
devcb = &via6522_device::set_readcb2_handler(*device, DEVCB2_##_devcb);
// TODO: CONVERT THESE TO WRITE LINE
#define MCFG_VIA6522_WRITEPA_HANDLER(_devcb) \
devcb = &via6522_device::set_writepa_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_WRITEPB_HANDLER(_devcb) \
devcb = &via6522_device::set_writepb_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_CA1_HANDLER(_devcb) \
devcb = &via6522_device::set_ca1_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_CB1_HANDLER(_devcb) \
devcb = &via6522_device::set_cb1_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_CA2_HANDLER(_devcb) \
devcb = &via6522_device::set_ca2_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_CB2_HANDLER(_devcb) \
devcb = &via6522_device::set_cb2_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIA6522_IRQ_HANDLER(_devcb) \
devcb = &via6522_device::set_irq_handler(*device, DEVCB2_##_devcb);
/***************************************************************************
@ -57,30 +74,9 @@
***************************************************************************/
// ======================> via6522_interface
struct via6522_interface
{
devcb_read8 m_in_a_cb;
devcb_read8 m_in_b_cb;
devcb_read_line m_in_ca1_cb;
devcb_read_line m_in_cb1_cb;
devcb_read_line m_in_ca2_cb;
devcb_read_line m_in_cb2_cb;
devcb_write8 m_out_a_cb;
devcb_write8 m_out_b_cb;
devcb_write_line m_out_ca1_cb;
devcb_write_line m_out_cb1_cb;
devcb_write_line m_out_ca2_cb;
devcb_write_line m_out_cb2_cb;
devcb_write_line m_irq_cb;
};
// ======================> via6522_device
class via6522_device : public device_t,
public via6522_interface
class via6522_device : public device_t
{
friend class dart_channel;
@ -88,29 +84,64 @@ public:
// construction/destruction
via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// TODO: REMOVE THESE
template<class _Object> static devcb2_base &set_readpa_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_a_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_readpb_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_b_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_readca1_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_ca1_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_readcb1_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_cb1_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_readca2_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_ca2_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_readcb2_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_in_cb2_handler.set_callback(object); }
// TODO: CONVERT THESE TO WRITE LINE
template<class _Object> static devcb2_base &set_writepa_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_out_a_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_writepb_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_out_b_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_ca1_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_ca1_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_cb1_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_cb1_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_ca2_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_ca2_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_cb2_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_cb2_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<via6522_device &>(device).m_irq_handler.set_callback(object); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_WRITE8_MEMBER( write_porta ) { m_in_a = data; }
// TODO: REMOVE THESE
DECLARE_READ_LINE_MEMBER( read_ca1 ) { return m_in_ca1; }
DECLARE_READ_LINE_MEMBER( read_ca2 ) { return m_in_ca2; }
DECLARE_READ_LINE_MEMBER( read_cb1 ) { return m_in_cb1; }
DECLARE_READ_LINE_MEMBER( read_cb2 ) { return m_in_cb2; }
DECLARE_READ8_MEMBER( read_portb ) { return m_in_b; }
// TODO: CONVERT THESE TO WRITE LINE
DECLARE_WRITE8_MEMBER( write_porta ) { m_in_a = data; }
DECLARE_WRITE8_MEMBER( write_portb ) { m_in_b = data; }
DECLARE_READ_LINE_MEMBER( read_ca1 ) { return m_in_ca1; }
DECLARE_WRITE_LINE_MEMBER( write_ca1 );
DECLARE_READ_LINE_MEMBER( read_ca2 ) { return m_in_ca2; }
DECLARE_WRITE_LINE_MEMBER( write_ca2 );
DECLARE_READ_LINE_MEMBER( read_cb1 ) { return m_in_cb1; }
DECLARE_WRITE_LINE_MEMBER( write_cb1 );
DECLARE_READ_LINE_MEMBER( read_cb2 ) { return m_in_cb2; }
DECLARE_WRITE_LINE_MEMBER( write_cb2 );
enum
{
VIA_PB = 0,
VIA_PA = 1,
VIA_DDRB = 2,
VIA_DDRA = 3,
VIA_T1CL = 4,
VIA_T1CH = 5,
VIA_T1LL = 6,
VIA_T1LH = 7,
VIA_T2CL = 8,
VIA_T2CH = 9,
VIA_SR = 10,
VIA_ACR = 11,
VIA_PCR = 12,
VIA_IFR = 13,
VIA_IER = 14,
VIA_PANH = 15
};
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
@ -128,19 +159,23 @@ private:
void clear_int(int data);
void shift();
devcb_resolved_read8 m_in_a_func;
devcb_resolved_read8 m_in_b_func;
devcb_resolved_read_line m_in_ca1_func;
devcb_resolved_read_line m_in_cb1_func;
devcb_resolved_read_line m_in_ca2_func;
devcb_resolved_read_line m_in_cb2_func;
devcb_resolved_write8 m_out_a_func;
devcb_resolved_write8 m_out_b_func;
devcb_resolved_write_line m_out_ca1_func;
devcb_resolved_write_line m_out_cb1_func;
devcb_resolved_write_line m_out_ca2_func;
devcb_resolved_write_line m_out_cb2_func;
devcb_resolved_write_line m_irq_func;
// TODO: REMOVE THESE
devcb2_read8 m_in_a_handler;
devcb2_read8 m_in_b_handler;
devcb2_read_line m_in_ca1_handler;
devcb2_read_line m_in_cb1_handler;
devcb2_read_line m_in_ca2_handler;
devcb2_read_line m_in_cb2_handler;
// TODO: CONVERT THESE TO WRITE LINE
devcb2_write8 m_out_a_handler;
devcb2_write8 m_out_b_handler;
devcb2_write_line m_ca1_handler;
devcb2_write_line m_cb1_handler;
devcb2_write_line m_ca2_handler;
devcb2_write_line m_cb2_handler;
devcb2_write_line m_irq_handler;
UINT8 m_in_a;
UINT8 m_in_ca1;

View File

@ -324,14 +324,13 @@ public:
DECLARE_READ8_MEMBER(via_b_r);
DECLARE_WRITE8_MEMBER(via_a_w);
DECLARE_WRITE8_MEMBER(via_b_w);
DECLARE_READ8_MEMBER(via_ca2_r);
DECLARE_READ8_MEMBER(via_cb2_r);
DECLARE_WRITE8_MEMBER(via_ca2_w);
DECLARE_WRITE8_MEMBER(via_cb2_w);
DECLARE_READ_LINE_MEMBER(via_ca2_r);
DECLARE_READ_LINE_MEMBER(via_cb2_r);
DECLARE_WRITE_LINE_MEMBER(via_ca2_w);
DECLARE_WRITE_LINE_MEMBER(via_cb2_w);
DECLARE_WRITE8_MEMBER(pblp_out);
DECLARE_WRITE8_MEMBER(pbltlp_out);
DECLARE_WRITE8_MEMBER(zn434_w);
DECLARE_WRITE8_MEMBER(firq);
DECLARE_READ8_MEMBER(pa1_r);
DECLARE_READ8_MEMBER(pb1_r);
DECLARE_READ8_MEMBER(pc1_r);
@ -834,7 +833,7 @@ WRITE8_MEMBER(aristmk4_state::via_b_w)
}
}
READ8_MEMBER(aristmk4_state::via_ca2_r)
READ_LINE_MEMBER(aristmk4_state::via_ca2_r)
{
//logerror("Via Port CA2 read %02X\n",0) ;
// CA2 is connected to CDSOL1 on schematics ?
@ -842,7 +841,7 @@ READ8_MEMBER(aristmk4_state::via_ca2_r)
return 0 ;
}
READ8_MEMBER(aristmk4_state::via_cb2_r)
READ_LINE_MEMBER(aristmk4_state::via_cb2_r)
{
//logerror("Via Port CB2 read %02X\n",0) ;
// CB2 is connected to HOPMO1 on schematics ?
@ -850,21 +849,21 @@ READ8_MEMBER(aristmk4_state::via_cb2_r)
return 0 ;
}
WRITE8_MEMBER(aristmk4_state::via_ca2_w)
WRITE_LINE_MEMBER(aristmk4_state::via_ca2_w)
{
//logerror("Via Port CA2 write %02X\n",data) ;
}
WRITE8_MEMBER(aristmk4_state::via_cb2_w)
WRITE_LINE_MEMBER(aristmk4_state::via_cb2_w)
{
// CB2 = hopper motor (HOPMO1). When it is 0x01, it is not running (active low)
// when it goes to 0, we're expecting to coins to be paid out, handled in via_b_r
// as soon as it is 1, HOPCO1 to remain 'ON'
if (data==0x01)
m_hopper_motor=data;
if (state==0x01)
m_hopper_motor=state;
else if (m_hopper_motor<0x02)
m_hopper_motor=data;
m_hopper_motor=state;
output_set_value("hopper_motor", m_hopper_motor); // stop motor
}
@ -1567,22 +1566,6 @@ static const ay8910_interface ay8910_config2 =
DEVCB_DRIVER_MEMBER(aristmk4_state,pbltlp_out) // Port B write - goes to lamps on the buttons x4 and light tower x4
};
WRITE8_MEMBER(aristmk4_state::firq)
{
m_maincpu->set_input_line(M6809_FIRQ_LINE, data ? ASSERT_LINE : CLEAR_LINE);
}
static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_DRIVER_MEMBER(aristmk4_state,via_a_r),DEVCB_DRIVER_MEMBER(aristmk4_state,via_b_r),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL,DEVCB_NULL,DEVCB_DRIVER_MEMBER(aristmk4_state,via_ca2_r),DEVCB_DRIVER_MEMBER(aristmk4_state,via_cb2_r),
/*outputs: A/B */ DEVCB_DRIVER_MEMBER(aristmk4_state,via_a_w), DEVCB_DRIVER_MEMBER(aristmk4_state,via_b_w),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL,DEVCB_NULL,DEVCB_DRIVER_MEMBER(aristmk4_state,via_ca2_w),DEVCB_DRIVER_MEMBER(aristmk4_state,via_cb2_w),
/*irq */ DEVCB_DRIVER_MEMBER(aristmk4_state,firq)
// CA1 is connected to +5V, CB1 is not connected.
};
static const pia6821_interface aristmk4_pia1_intf =
{
DEVCB_DRIVER_MEMBER(aristmk4_state, mkiv_pia_ina), // port A in
@ -1743,7 +1726,18 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
MCFG_VIA6522_ADD("via6522_0", 0, via_interface) /* 1 MHz.(only 1 or 2 MHz.are valid) */
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0) /* 1 MHz.(only 1 or 2 MHz.are valid) */
MCFG_VIA6522_READPA_HANDLER(READ8(aristmk4_state, via_a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(aristmk4_state, via_b_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(aristmk4_state, via_ca2_r))
MCFG_VIA6522_READCB2_HANDLER(READLINE(aristmk4_state, via_cb2_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(aristmk4_state, via_a_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(aristmk4_state, via_b_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(aristmk4_state, via_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(aristmk4_state, via_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809_device, firq_line))
// CA1 is connected to +5V, CB1 is not connected.
MCFG_PIA6821_ADD("pia6821_0", aristmk4_pia1_intf)
MCFG_MC6845_ADD("crtc", C6545_1, "screen", MAIN_CLOCK/8, mc6845_intf) // TODO: type is unknown
MCFG_MC146818_ADD( "rtc", XTAL_4_194304Mhz )

View File

@ -411,16 +411,6 @@ READ8_MEMBER(atarisy1_state::via_pb_r)
}
static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_DRIVER_MEMBER(atarisy1_state,via_pa_r), DEVCB_DRIVER_MEMBER(atarisy1_state,via_pb_r),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_DRIVER_MEMBER(atarisy1_state,via_pa_w), DEVCB_DRIVER_MEMBER(atarisy1_state,via_pb_w),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*irq */ DEVCB_NULL
};
/*************************************
*
@ -777,7 +767,11 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, via_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
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))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(atarisy1_state, via_pb_w))
MACHINE_CONFIG_END

View File

@ -111,8 +111,26 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, b_via_0_interface)
MCFG_VIA6522_ADD("via6522_1", 0, b_via_1_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(beezer_state, b_via_0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(beezer_state, b_via_0_pb_r))
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE("via6522_1", via6522_device, read_ca2))
MCFG_VIA6522_READCA2_HANDLER(READLINE(beezer_state, b_via_0_ca2_r))
MCFG_VIA6522_READCB2_HANDLER(DEVREADLINE("via6522_1", via6522_device, read_ca1))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(beezer_state, b_via_0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(beezer_state, b_via_0_pb_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_ca1))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809_device, irq_line))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(beezer_state, b_via_1_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(beezer_state, b_via_1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE("via6522_0", via6522_device, read_cb2))
MCFG_VIA6522_READCA2_HANDLER(DEVREADLINE("via6522_0", via6522_device, read_cb1))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(beezer_state, b_via_1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(beezer_state, b_via_1_pb_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809_device, irq_line))
MACHINE_CONFIG_END
/***************************************************************************

View File

@ -134,8 +134,7 @@ public:
DECLARE_READ8_MEMBER(via_b_in);
DECLARE_WRITE8_MEMBER(via_a_out);
DECLARE_WRITE8_MEMBER(via_b_out);
DECLARE_WRITE8_MEMBER(via_ca2_out);
DECLARE_WRITE8_MEMBER(via_irq);
DECLARE_WRITE_LINE_MEMBER(via_ca2_out);
DECLARE_READ8_MEMBER(dips1_r);
DECLARE_WRITE8_MEMBER(input_mux_w);
DECLARE_DRIVER_INIT(bmcbowl);
@ -257,18 +256,12 @@ WRITE8_MEMBER(bmcbowl_state::via_b_out)
//used
}
WRITE8_MEMBER(bmcbowl_state::via_ca2_out)
WRITE_LINE_MEMBER(bmcbowl_state::via_ca2_out)
{
//used
}
WRITE8_MEMBER(bmcbowl_state::via_irq)
{
m_maincpu->set_input_line(4, data ? ASSERT_LINE : CLEAR_LINE);
}
// 'working' NVRAM
#ifdef NVRAM_HACK
@ -475,15 +468,6 @@ static const ay8910_interface ay8910_config =
};
static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(bmcbowl_state,via_b_in),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_DRIVER_MEMBER(bmcbowl_state,via_a_out), DEVCB_DRIVER_MEMBER(bmcbowl_state,via_b_out),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(bmcbowl_state,via_ca2_out), DEVCB_NULL,
/*irq */ DEVCB_DRIVER_MEMBER(bmcbowl_state,via_irq)
};
static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_CPU_ADD("maincpu", M68000, 21477270/2 )
MCFG_CPU_PROGRAM_MAP(bmcbowl_mem)
@ -512,7 +496,12 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
/* via */
MCFG_VIA6522_ADD("via6522_0", 1000000, via_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPB_HANDLER(READ8(bmcbowl_state,via_b_in))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(bmcbowl_state, via_a_out))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bmcbowl_state, via_b_out))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(bmcbowl_state, via_ca2_out))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m68000_device, write_irq4))
MACHINE_CONFIG_END
ROM_START( bmcbowl )

View File

@ -47,8 +47,8 @@ public:
DECLARE_READ8_MEMBER(io1_r);
DECLARE_WRITE8_MEMBER(io2_w);
DECLARE_READ8_MEMBER(io2_r);
DECLARE_WRITE8_MEMBER(via1_irq);
DECLARE_WRITE8_MEMBER(via2_irq);
DECLARE_WRITE_LINE_MEMBER(via1_irq);
DECLARE_WRITE_LINE_MEMBER(via2_irq);
void dacia_receive(UINT8 data);
DECLARE_WRITE8_MEMBER(dacia_w);
DECLARE_READ8_MEMBER(dacia_r);
@ -481,9 +481,9 @@ WRITE8_MEMBER(cops_state::io2_w)
*
*************************************/
WRITE8_MEMBER(cops_state::via1_irq)
WRITE_LINE_MEMBER(cops_state::via1_irq)
{
if ( data == ASSERT_LINE )
if ( state == ASSERT_LINE )
{
m_irq |= 1;
}
@ -494,15 +494,6 @@ WRITE8_MEMBER(cops_state::via1_irq)
m_maincpu->set_input_line(M6502_IRQ_LINE, m_irq ? ASSERT_LINE : CLEAR_LINE);
}
static const via6522_interface via_1_interface =
{
DEVCB_NULL, DEVCB_NULL, /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_NULL, DEVCB_NULL, /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(cops_state,via1_irq) /*irq */
};
/*************************************
*
* VIA 2 (U27)
@ -512,9 +503,9 @@ static const via6522_interface via_1_interface =
*
*************************************/
WRITE8_MEMBER(cops_state::via2_irq)
WRITE_LINE_MEMBER(cops_state::via2_irq)
{
if ( data == ASSERT_LINE )
if ( state == ASSERT_LINE )
{
m_irq |= 2;
}
@ -526,32 +517,6 @@ WRITE8_MEMBER(cops_state::via2_irq)
}
static const via6522_interface via_2_interface =
{
DEVCB_NULL, DEVCB_NULL, /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_NULL, DEVCB_NULL, /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(cops_state,via2_irq) /*irq */
};
/*************************************
*
* VIA 3
* PA0-7 CDROM
* PB0-8 CDROM
*
*************************************/
static const via6522_interface via_3_interface =
{
DEVCB_DRIVER_MEMBER(cops_state, cdrom_data_r), DEVCB_NULL, /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(cops_state, cdrom_data_w), DEVCB_DRIVER_MEMBER(cops_state, cdrom_ctrl_w), /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
/*************************************
*
* Main CPU memory handlers
@ -640,9 +605,16 @@ static MACHINE_CONFIG_START( cops, cops_state )
MCFG_PALETTE_LENGTH(8)
/* via */
MCFG_VIA6522_ADD("via6522_1", 0, via_1_interface)
MCFG_VIA6522_ADD("via6522_2", 0, via_2_interface)
MCFG_VIA6522_ADD("via6522_3", 0, via_3_interface)
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via1_irq))
MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cops_state, via2_irq))
MCFG_DEVICE_ADD("via6522_3", VIA6522, 0)
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))
/* acia */
// MCFG_MOS6551_ADD("acia6551_1", XTAL_1_8432MHz, NULL)

View File

@ -111,22 +111,12 @@ READ8_MEMBER(gameplan_state::io_port_r)
}
WRITE8_MEMBER(gameplan_state::coin_w)
WRITE_LINE_MEMBER(gameplan_state::coin_w)
{
coin_counter_w(machine(), 0, ~data & 1);
coin_counter_w(machine(), 0, ~state & 1);
}
static const via6522_interface via_1_interface =
{
DEVCB_DRIVER_MEMBER(gameplan_state,io_port_r), DEVCB_NULL, /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,io_select_w), /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,coin_w), /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
/*************************************
*
@ -134,11 +124,11 @@ static const via6522_interface via_1_interface =
*
*************************************/
WRITE8_MEMBER(gameplan_state::audio_reset_w)
WRITE_LINE_MEMBER(gameplan_state::audio_reset_w)
{
m_audiocpu->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
m_audiocpu->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE);
if (data == 0)
if (state == 0)
{
m_riot->reset();
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
@ -152,22 +142,12 @@ WRITE8_MEMBER(gameplan_state::audio_cmd_w)
}
WRITE8_MEMBER(gameplan_state::audio_trigger_w)
WRITE_LINE_MEMBER(gameplan_state::audio_trigger_w)
{
m_riot->porta_in_set(data << 7, 0x80);
m_riot->porta_in_set(state << 7, 0x80);
}
static const via6522_interface via_2_interface =
{
DEVCB_NULL, DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r), /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(gameplan_state,audio_cmd_w), DEVCB_NULL, /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,audio_trigger_w), DEVCB_DRIVER_MEMBER(gameplan_state,audio_reset_w), /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
/*************************************
*
@ -1016,9 +996,23 @@ static MACHINE_CONFIG_START( gameplan, gameplan_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, gameplan_via_0_interface)
MCFG_VIA6522_ADD("via6522_1", 0, via_1_interface)
MCFG_VIA6522_ADD("via6522_2", 0, via_2_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state, vblank_r))
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_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_VIA6522_READPB_HANDLER(READ8(driver_device, soundlatch_byte_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(gameplan_state, audio_cmd_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, audio_trigger_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(gameplan_state, audio_reset_w))
MACHINE_CONFIG_END
@ -1034,8 +1028,8 @@ static MACHINE_CONFIG_DERIVED( leprechn, gameplan )
MCFG_FRAGMENT_ADD(leprechn_video)
/* via */
MCFG_DEVICE_REMOVE("via6522_0")
MCFG_VIA6522_ADD("via6522_0", 0, leprechn_via_0_interface)
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(gameplan_state, leprechn_video_command_w))
MACHINE_CONFIG_END

View File

@ -720,9 +720,9 @@ WRITE8_MEMBER(itech32_state::drivedge_portb_out)
}
WRITE8_MEMBER(itech32_state::drivedge_turbo_light)
WRITE_LINE_MEMBER(itech32_state::drivedge_turbo_light)
{
set_led_status(machine(), 0, data);
set_led_status(machine(), 0, state);
}
@ -739,33 +739,6 @@ WRITE8_MEMBER(itech32_state::pia_portb_out)
/*************************************
*
* Sound 6522 VIA handling
*
*************************************/
static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_NULL,
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,pia_portb_out),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*irq */ DEVCB_CPU_INPUT_LINE("soundcpu", M6809_FIRQ_LINE)
};
static const via6522_interface drivedge_via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_NULL,
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,drivedge_portb_out),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech32_state,drivedge_turbo_light),
/*irq */ DEVCB_CPU_INPUT_LINE("soundcpu", M6809_FIRQ_LINE)
};
/*************************************
*
* Additional sound code
@ -1721,7 +1694,9 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
/* via */
MCFG_VIA6522_ADD("via6522_0", SOUND_CLOCK/8, via_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, SOUND_CLOCK/8)
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(itech32_state,pia_portb_out))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("soundcpu", m6809_device, firq_line))
MACHINE_CONFIG_END
@ -1750,6 +1725,10 @@ static MACHINE_CONFIG_DERIVED( drivedge, bloodstm )
MCFG_CPU_ADD("dsp2", TMS32031, TMS_CLOCK)
MCFG_CPU_PROGRAM_MAP(drivedge_tms2_map)
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(itech32_state,drivedge_portb_out))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(itech32_state,drivedge_turbo_light))
// MCFG_CPU_ADD("comm", M6803, 8000000/4) -- network CPU
MCFG_MACHINE_RESET_OVERRIDE(itech32_state,drivedge)

View File

@ -547,23 +547,6 @@ static const pia6821_interface pia_interface =
/*************************************
*
* 6522 VIA interface
*
*************************************/
static const via6522_interface via_interface =
{
/*inputs : A/B */ DEVCB_NULL, DEVCB_NULL,
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech8_state, pia_portb_out),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*irq */ DEVCB_CPU_INPUT_LINE("soundcpu", M6809_FIRQ_LINE)
};
/*************************************
*
* Interrupt handling
@ -1704,7 +1687,9 @@ static MACHINE_CONFIG_START( itech8_core_lo, itech8_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
/* via */
MCFG_VIA6522_ADD("via6522_0", CLOCK_8MHz/4, via_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, CLOCK_8MHz/4)
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(itech8_state, pia_portb_out))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("soundcpu", m6809_device, firq_line))
MACHINE_CONFIG_END

View File

@ -46,12 +46,12 @@ READ8_MEMBER(gameplan_state::trvquest_question_r)
return memregion("questions")->base()[*m_trvquest_question * 0x2000 + offset];
}
WRITE8_MEMBER(gameplan_state::trvquest_coin_w)
WRITE_LINE_MEMBER(gameplan_state::trvquest_coin_w)
{
coin_counter_w(machine(), 0, ~data & 1);
coin_counter_w(machine(), 0, ~state & 1);
}
WRITE8_MEMBER(gameplan_state::trvquest_misc_w)
WRITE_LINE_MEMBER(gameplan_state::trvquest_misc_w)
{
// data & 1 -> led on/off ?
}
@ -145,24 +145,6 @@ static INPUT_PORTS_START( trvquest )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
static const via6522_interface via_1_interface =
{
/*inputs : A/B */ DEVCB_INPUT_PORT("IN0"), DEVCB_INPUT_PORT("IN1"),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_NULL, DEVCB_NULL,
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,trvquest_coin_w), DEVCB_NULL,
/*irq */ DEVCB_NULL
};
static const via6522_interface via_2_interface =
{
/*inputs : A/B */ DEVCB_INPUT_PORT("UNK"), DEVCB_INPUT_PORT("DSW"),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B */ DEVCB_NULL, DEVCB_NULL,
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,trvquest_misc_w), DEVCB_NULL,
/*irq */ DEVCB_DRIVER_LINE_MEMBER(gameplan_state,via_irq)
};
MACHINE_START_MEMBER(gameplan_state,trvquest)
{
@ -210,9 +192,22 @@ static MACHINE_CONFIG_START( trvquest, gameplan_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, trvquest_via_0_interface)
MCFG_VIA6522_ADD("via6522_1", 0, via_1_interface)
MCFG_VIA6522_ADD("via6522_2", 0, via_2_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(gameplan_state,vblank_r))
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_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_VIA6522_READPA_HANDLER(IOPORT("UNK"))
MCFG_VIA6522_READPB_HANDLER(IOPORT("DSW"))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(gameplan_state, trvquest_misc_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(gameplan_state, via_irq))
MACHINE_CONFIG_END
ROM_START( trvquest )

View File

@ -119,7 +119,14 @@ static MACHINE_CONFIG_START( vectrex, vectrex_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, vectrex_via6522_interface)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
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))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(vectrex_state, v_via_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(vectrex_state, v_via_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(vectrex_state, v_via_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(vectrex_state, vectrex_via_irq))
/* cartridge */
MCFG_CARTSLOT_ADD("cart")
@ -209,8 +216,8 @@ static MACHINE_CONFIG_DERIVED( raaspec, vectrex )
MCFG_VIDEO_START_OVERRIDE(vectrex_state,raaspec)
/* via */
MCFG_DEVICE_REMOVE("via6522_0")
MCFG_VIA6522_ADD("via6522_0", 0, spectrum1_via6522_interface)
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_READPB_HANDLER(READ8(vectrex_state, vectrex_s1_via_pb_r))
MCFG_DEVICE_REMOVE("cart")
MACHINE_CONFIG_END

View File

@ -113,9 +113,3 @@ private:
};
extern const device_type BEEZER;
/*----------- defined in machine/beezer.c -----------*/
extern const via6522_interface b_via_0_interface;
extern const via6522_interface b_via_1_interface;

View File

@ -64,10 +64,10 @@ public:
required_device<via6522_device> m_via_2;
DECLARE_WRITE8_MEMBER(io_select_w);
DECLARE_READ8_MEMBER(io_port_r);
DECLARE_WRITE8_MEMBER(coin_w);
DECLARE_WRITE8_MEMBER(audio_reset_w);
DECLARE_WRITE_LINE_MEMBER(coin_w);
DECLARE_WRITE_LINE_MEMBER(audio_reset_w);
DECLARE_WRITE8_MEMBER(audio_cmd_w);
DECLARE_WRITE8_MEMBER(audio_trigger_w);
DECLARE_WRITE_LINE_MEMBER(audio_trigger_w);
DECLARE_WRITE_LINE_MEMBER(r6532_irq);
DECLARE_WRITE8_MEMBER(r6532_soundlatch_w);
DECLARE_MACHINE_START(gameplan);
@ -94,8 +94,8 @@ public:
void leprechn_get_pens( pen_t *pens );
DECLARE_WRITE_LINE_MEMBER(via_irq);
DECLARE_READ8_MEMBER(trvquest_question_r);
DECLARE_WRITE8_MEMBER(trvquest_coin_w);
DECLARE_WRITE8_MEMBER(trvquest_misc_w);
DECLARE_WRITE_LINE_MEMBER(trvquest_coin_w);
DECLARE_WRITE_LINE_MEMBER(trvquest_misc_w);
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
@ -103,10 +103,6 @@ protected:
/*----------- defined in video/gameplan.c -----------*/
extern const via6522_interface gameplan_via_0_interface;
extern const via6522_interface leprechn_via_0_interface;
extern const via6522_interface trvquest_via_0_interface;
MACHINE_CONFIG_EXTERN( gameplan_video );
MACHINE_CONFIG_EXTERN( leprechn_video );
MACHINE_CONFIG_EXTERN( trvquest_video );

View File

@ -142,7 +142,7 @@ public:
DECLARE_READ32_MEMBER(itech020_video_r);
DECLARE_CUSTOM_INPUT_MEMBER(special_port_r);
DECLARE_WRITE8_MEMBER(drivedge_portb_out);
DECLARE_WRITE8_MEMBER(drivedge_turbo_light);
DECLARE_WRITE_LINE_MEMBER(drivedge_turbo_light);
DECLARE_WRITE8_MEMBER(pia_portb_out);
DECLARE_DRIVER_INIT(gtclasscp);
DECLARE_DRIVER_INIT(shufshot);

View File

@ -112,8 +112,8 @@ public:
DECLARE_READ8_MEMBER(vectrex_s1_via_pb_r);
DECLARE_WRITE8_MEMBER(v_via_pb_w);
DECLARE_WRITE8_MEMBER(v_via_pa_w);
DECLARE_WRITE8_MEMBER(v_via_ca2_w);
DECLARE_WRITE8_MEMBER(v_via_cb2_w);
DECLARE_WRITE_LINE_MEMBER(v_via_ca2_w);
DECLARE_WRITE_LINE_MEMBER(v_via_cb2_w);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( vectrex_cart );
DECLARE_WRITE_LINE_MEMBER(vectrex_via_irq);
@ -143,9 +143,4 @@ protected:
int vectrex_verify_cart(char *data);
};
/*---------- defined in video/vectrex.c -----------*/
extern const via6522_interface vectrex_via6522_interface;
extern const via6522_interface spectrum1_via6522_interface;
#endif /* VECTREX_H_ */

View File

@ -28,14 +28,6 @@
TODO: find a better way to attach ca2 read to beezer_line_r
*/
const via6522_interface b_via_0_interface =
{
/*inputs : A/B */ DEVCB_DRIVER_MEMBER(beezer_state,b_via_0_pa_r), DEVCB_DRIVER_MEMBER(beezer_state,b_via_0_pb_r),
/*inputs : CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, read_ca2), DEVCB_DRIVER_LINE_MEMBER(beezer_state, b_via_0_ca2_r), DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, read_ca1),
/*outputs: A/B */ DEVCB_DRIVER_MEMBER(beezer_state,b_via_0_pa_w), DEVCB_DRIVER_MEMBER(beezer_state,b_via_0_pb_w),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_1", via6522_device, write_ca1),
/*irq */ DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
};
/* VIA 1 (U18 @3C on schematics)
port A:
@ -60,14 +52,6 @@ const via6522_interface b_via_0_interface =
TODO: the entirety of port B, much needs tracing
TODO: ports CB1 and CB2, need tracing; ports CA1 and CA2 could use verify as well
*/
const via6522_interface b_via_1_interface =
{
/*inputs : A/B */ DEVCB_DRIVER_MEMBER(beezer_state,b_via_1_pa_r), DEVCB_DRIVER_MEMBER(beezer_state,b_via_1_pb_r),
/*inputs : CA/B1,CA/B2 */ DEVCB_DEVICE_LINE_MEMBER("via6522_0", via6522_device, read_cb2), DEVCB_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_0", via6522_device, read_cb1), DEVCB_NULL,
/*outputs: A/B */ DEVCB_DRIVER_MEMBER(beezer_state,b_via_1_pa_w), DEVCB_DRIVER_MEMBER(beezer_state,b_via_1_pb_w),
/*outputs: CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_DEVICE_LINE_MEMBER("via6522_0", via6522_device, write_cb1), DEVCB_NULL,
/*irq */ DEVCB_CPU_INPUT_LINE("audiocpu", M6809_IRQ_LINE)
};
READ_LINE_MEMBER(beezer_state::b_via_0_ca2_r)
{

View File

@ -1,5 +1,4 @@
#include "emu.h"
#include "machine/6522via.h"
#include "cpu/m6809/m6809.h"
#include "sound/ay8910.h"

View File

@ -7,7 +7,6 @@ driver by Chris Moore
****************************************************************************/
#include "emu.h"
#include "machine/6522via.h"
#include "includes/gameplan.h"
@ -247,36 +246,6 @@ READ8_MEMBER(gameplan_state::vblank_r)
}
const via6522_interface gameplan_via_0_interface =
{
DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,vblank_r), /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(gameplan_state,video_data_w), DEVCB_DRIVER_MEMBER(gameplan_state,gameplan_video_command_w), /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_LINE_MEMBER(gameplan_state,video_command_trigger_w), DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_DRIVER_LINE_MEMBER(gameplan_state,via_irq) /*irq */
};
const via6522_interface leprechn_via_0_interface =
{
DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,vblank_r), /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(gameplan_state,video_data_w), DEVCB_DRIVER_MEMBER(gameplan_state,leprechn_video_command_w), /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_LINE_MEMBER(gameplan_state,video_command_trigger_w), DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_DRIVER_LINE_MEMBER(gameplan_state,via_irq) /*irq */
};
const via6522_interface trvquest_via_0_interface =
{
DEVCB_NULL, DEVCB_DRIVER_MEMBER(gameplan_state,vblank_r), /*inputs : A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /*inputs : CA/B1,CA/B2 */
DEVCB_DRIVER_MEMBER(gameplan_state,video_data_w), DEVCB_DRIVER_MEMBER(gameplan_state,gameplan_video_command_w), /*outputs: A/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_LINE_MEMBER(gameplan_state,video_command_trigger_w), DEVCB_NULL, /*outputs: CA/B1,CA/B2 */
DEVCB_NULL /*irq */
};
TIMER_CALLBACK_MEMBER(gameplan_state::via_0_ca1_timer_callback)
{
/* !VBLANK is connected to CA1 */

View File

@ -31,23 +31,6 @@ enum {
A_Y,
};
/*********************************************************************
Local variables
*********************************************************************/
const via6522_interface vectrex_via6522_interface =
{
DEVCB_DRIVER_MEMBER(vectrex_state,vectrex_via_pa_r), DEVCB_DRIVER_MEMBER(vectrex_state,vectrex_via_pb_r), /* read PA/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, /* read ca1, cb1, ca2, cb2 */
DEVCB_DRIVER_MEMBER(vectrex_state,v_via_pa_w), DEVCB_DRIVER_MEMBER(vectrex_state,v_via_pb_w), /* write PA/B */
DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(vectrex_state,v_via_ca2_w), DEVCB_DRIVER_MEMBER(vectrex_state,v_via_cb2_w), /* write ca1, cb1, ca2, cb2 */
DEVCB_DRIVER_LINE_MEMBER(vectrex_state,vectrex_via_irq), /* IRQ */
};
/*********************************************************************
Lightpen
@ -381,18 +364,18 @@ WRITE8_MEMBER(vectrex_state::v_via_pa_w)
}
WRITE8_MEMBER(vectrex_state::v_via_ca2_w)
WRITE_LINE_MEMBER(vectrex_state::v_via_ca2_w)
{
if (data == 0)
if (state == 0)
timer_set(attotime::from_nsec(ANALOG_DELAY), TIMER_VECTREX_ZERO_INTEGRATORS);
}
WRITE8_MEMBER(vectrex_state::v_via_cb2_w)
WRITE_LINE_MEMBER(vectrex_state::v_via_cb2_w)
{
int dx, dy;
if (m_cb2 != data)
if (m_cb2 != state)
{
/* Check lightpen */
if (m_lightpen_port != 0)
@ -406,13 +389,13 @@ WRITE8_MEMBER(vectrex_state::v_via_cb2_w)
dx = abs(m_pen_x - m_x_int);
dy = abs(m_pen_y - m_y_int);
if (dx < 500000 && dy < 500000 && data > 0)
if (dx < 500000 && dy < 500000 && state > 0)
timer_set(attotime::zero, TIMER_LIGHTPEN_TRIGGER);
}
}
timer_set(attotime::zero, TIMER_UPDATE_SIGNAL, data, &m_blank);
m_cb2 = data;
timer_set(attotime::zero, TIMER_UPDATE_SIGNAL, state, &m_blank);
m_cb2 = state;
}
}
@ -423,14 +406,6 @@ WRITE8_MEMBER(vectrex_state::v_via_cb2_w)
*****************************************************************/
const via6522_interface spectrum1_via6522_interface =
{
/*inputs : A/B,CA/B1,CA/B2 */ DEVCB_DRIVER_MEMBER(vectrex_state,vectrex_via_pa_r), DEVCB_DRIVER_MEMBER(vectrex_state,vectrex_s1_via_pb_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
/*outputs: A/B,CA/B1,CA/B2 */ DEVCB_DRIVER_MEMBER(vectrex_state,v_via_pa_w), DEVCB_DRIVER_MEMBER(vectrex_state,v_via_pb_w), DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(vectrex_state,v_via_ca2_w), DEVCB_DRIVER_MEMBER(vectrex_state,v_via_cb2_w),
/*irq */ DEVCB_DRIVER_LINE_MEMBER(vectrex_state,vectrex_via_irq),
};
WRITE8_MEMBER(vectrex_state::raaspec_led_w)
{
logerror("Spectrum I+ LED: %i%i%i%i%i%i%i%i\n",

View File

@ -198,23 +198,6 @@ WRITE_LINE_MEMBER( a6809_state::cass_w )
m_cass_state = state;
}
static const via6522_interface via_intf =
{
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(a6809_state, pb_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(a6809_state, cass_w), // out CB2
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0)
};
TIMER_DEVICE_CALLBACK_MEMBER(a6809_state::a6809_c)
{
m_cass_data[3]++;
@ -275,7 +258,11 @@ static MACHINE_CONFIG_START( a6809, a6809_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */
MCFG_VIA6522_ADD("via", XTAL_4MHz / 4, via_intf)
MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz / 4)
MCFG_VIA6522_READPB_HANDLER(READ8(a6809_state, pb_r))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(a6809_state, cass_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
MCFG_MC6845_ADD("mc6845", MC6845, "screen", XTAL_4MHz / 2, a6809_crtc6845_interface)
MCFG_SAA5050_ADD("saa5050", 6000000, a6809_saa5050_intf)
MCFG_ASCII_KEYBOARD_ADD("keyboard", kb_intf)

View File

@ -155,42 +155,6 @@ static const riot6532_interface aim65_riot_interface =
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
/* system via interface Z32 */
static const via6522_interface aim65_system_via =
{
DEVCB_NULL, // in port A
DEVCB_DRIVER_MEMBER(aim65_state, aim65_pb_r), // in port B
DEVCB_NULL, // in CA1 printer ready?
DEVCB_NULL, // in CB1
DEVCB_NULL, // in CA2
DEVCB_NULL, // in CB2
DEVCB_NULL, // out Port A
DEVCB_DRIVER_MEMBER(aim65_state, aim65_pb_w), // out port B
DEVCB_NULL, // out CA1
DEVCB_NULL, // out CB1 printer start
DEVCB_NULL, // out CA2 cass control (H=in)
DEVCB_NULL, // out CB2 turn printer on
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE) //IRQ
};
/* user via interface Z1 */
static const via6522_interface aim65_user_via =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
/* R6520 interface U1 */
static const pia6821_interface aim65_pia_config =
{
@ -360,8 +324,19 @@ static MACHINE_CONFIG_START( aim65, aim65_state )
/* other devices */
MCFG_RIOT6532_ADD("riot", AIM65_CLOCK, aim65_riot_interface)
MCFG_VIA6522_ADD("via6522_0", 0, aim65_system_via)
MCFG_VIA6522_ADD("via6522_1", 0, aim65_user_via)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(aim65_state, aim65_pb_r))
// in CA1 printer ready?
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(aim65_state, aim65_pb_w))
// out CB1 printer start
// out CA2 cass control (H=in)
// out CB2 turn printer on
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6502_device, irq_line))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6502_device, irq_line))
MCFG_PIA6821_ADD("pia6821", aim65_pia_config)
MCFG_CASSETTE_ADD( "cassette", aim65_1_cassette_interface )

View File

@ -101,61 +101,6 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( aim65_40 )
INPUT_PORTS_END
/***************************************************************************
DEVICE INTERFACES
***************************************************************************/
static const via6522_interface user_via_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static const via6522_interface system_via_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static const via6522_interface kb_via_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/***************************************************************************
MACHINE DRIVERS
***************************************************************************/
@ -171,9 +116,9 @@ static MACHINE_CONFIG_START( aim65_40, aim65_40_state )
/* sound hardware */
/* devices */
MCFG_VIA6522_ADD(M6522_0_TAG, 0, user_via_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, 0, system_via_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, 0, kb_via_intf)
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(M6551_TAG, MOS6551, XTAL_1_8432MHz)
MACHINE_CONFIG_END

View File

@ -101,8 +101,16 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD("via6522_0", 1000000, apple3_via_0_intf)
MCFG_VIA6522_ADD("via6522_1", 2000000, apple3_via_1_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(apple3_state, apple3_via_0_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_0_out_b))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 2000000)
MCFG_VIA6522_READPA_HANDLER(READ8(apple3_state, apple3_via_1_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(apple3_state, apple3_via_1_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(apple3_state, apple3_via_1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(apple3_state, apple3_via_1_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(apple3_state, apple2_via_1_irq_func))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)

View File

@ -826,23 +826,6 @@ WRITE_LINE_MEMBER( applix_state::vsync_w )
m_via->write_ca2(state);
}
static const via6522_interface applix_via =
{
DEVCB_DRIVER_MEMBER(applix_state, applix_pa_r), // in port A
DEVCB_DRIVER_MEMBER(applix_state, applix_pb_r), // in port B
DEVCB_NULL, // in CA1 cent ack
DEVCB_NULL, // in CB1 kbd clk
DEVCB_NULL, // in CA2 vsync
DEVCB_NULL, // in CB2 kdb data
DEVCB_DRIVER_MEMBER(applix_state, applix_pa_w),// out Port A
DEVCB_DRIVER_MEMBER(applix_state, applix_pb_w), // out port B
DEVCB_NULL, // out CA1
DEVCB_NULL, // out CB1
DEVCB_NULL, // out CA2
DEVCB_NULL, // out CB2
DEVCB_CPU_INPUT_LINE("maincpu", M68K_IRQ_2) //IRQ
};
TIMER_DEVICE_CALLBACK_MEMBER(applix_state::cass_timer)
{
/* cassette - turn 2500/5000Hz to a bit */
@ -907,7 +890,17 @@ static MACHINE_CONFIG_START( applix, applix_state )
/* Devices */
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1875000, applix_crtc) // 6545
MCFG_VIA6522_ADD("via6522", 0, applix_via)
MCFG_DEVICE_ADD("via6522", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(applix_state, applix_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(applix_state, applix_pb_r))
// in CA1 cent ack
// in CB1 kbd clk
// in CA2 vsync
// in CB2 kdb data
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(applix_state, applix_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(applix_state, applix_pb_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m68000_device, write_irq2))
MCFG_CENTRONICS_PRINTER_ADD("centronics", applix_centronics_config)
MCFG_CASSETTE_ADD("cassette", applix_cassette_interface)
MCFG_WD1772x_ADD("fdc", XTAL_16MHz / 2) //connected to Z80H clock pin

View File

@ -563,10 +563,6 @@ static I8255_INTERFACE( ppi_intf )
DEVCB_DRIVER_MEMBER(atom_state, ppi_pc_w)
};
/*-------------------------------------------------
via6522_interface via_intf
-------------------------------------------------*/
READ8_MEMBER( atom_state::printer_busy )
{
return m_centronics->busy_r() << 7;
@ -577,23 +573,6 @@ WRITE8_MEMBER( atom_state::printer_data )
m_centronics->write(space, 0, data & 0x7f);
}
static const via6522_interface via_intf =
{
DEVCB_DRIVER_MEMBER(atom_state, printer_busy),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(atom_state, printer_data),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(CENTRONICS_TAG, centronics_device, strobe_w),
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(SY6502_TAG, INPUT_LINE_IRQ0)
};
/*-------------------------------------------------
i8271_interface fdc_intf
-------------------------------------------------*/
@ -871,7 +850,13 @@ static MACHINE_CONFIG_START( atom, atom_state )
/* devices */
MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806))
MCFG_VIA6522_ADD(R6522_TAG, X2/4, via_intf)
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, X2/4)
MCFG_VIA6522_READPA_HANDLER(READ8(atom_state, printer_busy))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(atom_state, printer_data))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(SY6502_TAG, m6502_device, irq_line))
MCFG_I8255_ADD(INS8255_TAG, ppi_intf)
MCFG_I8271_ADD(I8271_TAG, fdc_intf)
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(atom_floppy_interface)
@ -942,7 +927,13 @@ static MACHINE_CONFIG_START( atombb, atom_state )
/* devices */
MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806))
MCFG_VIA6522_ADD(R6522_TAG, X2/4, via_intf)
MCFG_DEVICE_ADD(R6522_TAG, VIA6522, X2/4)
MCFG_VIA6522_READPA_HANDLER(READ8(atom_state, printer_busy))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(atom_state, printer_data))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(SY6502_TAG, m6502_device, irq_line))
MCFG_I8255_ADD(INS8255_TAG, ppi_intf)
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, atom_centronics_config)
MCFG_CASSETTE_ADD("cassette", atom_cassette_interface)

View File

@ -698,7 +698,16 @@ static MACHINE_CONFIG_START( bbca, bbc_state )
MCFG_RS232_OUT_CTS_HANDLER(WRITELINE(bbc_state, write_cts_serial))
/* devices */
MCFG_VIA6522_ADD("via6522_0", 1000000, bbcb_system_via)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
MCFG_VIA6522_READCA1_HANDLER(READLINE(bbc_state, bbcb_via_system_read_ca1))
MCFG_VIA6522_READCB1_HANDLER(READLINE(bbc_state, bbcb_via_system_read_cb1))
MCFG_VIA6522_READCA2_HANDLER(READLINE(bbc_state, bbcb_via_system_read_ca2))
MCFG_VIA6522_READCB2_HANDLER(READLINE(bbc_state, bbcb_via_system_read_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_porta))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_portb))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_system_irq_w))
MACHINE_CONFIG_END
@ -721,7 +730,13 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
// MCFG_TMS52XX_SPEECHROM("vsm")
/* devices */
MCFG_VIA6522_ADD("via6522_1", 1000000, bbcb_user_via)
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
/* printer */
@ -765,7 +780,13 @@ static MACHINE_CONFIG_DERIVED( bbcb_us, bbca )
MCFG_SCREEN_REFRESH_RATE(60)
/* devices */
MCFG_VIA6522_ADD("via6522_1", 1000000, bbcb_user_via)
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
/* printer */
@ -889,8 +910,23 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
/* devices */
MCFG_UPD7002_ADD("upd7002", bbc_uPD7002)
MCFG_VIA6522_ADD("via6522_0", 1000000, bbcb_system_via)
MCFG_VIA6522_ADD("via6522_1", 1000000, bbcb_user_via)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
MCFG_VIA6522_READCA1_HANDLER(READLINE(bbc_state, bbcb_via_system_read_ca1))
MCFG_VIA6522_READCB1_HANDLER(READLINE(bbc_state, bbcb_via_system_read_cb1))
MCFG_VIA6522_READCA2_HANDLER(READLINE(bbc_state, bbcb_via_system_read_ca2))
MCFG_VIA6522_READCB2_HANDLER(READLINE(bbc_state, bbcb_via_system_read_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_porta))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_portb))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_system_irq_w))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("centronics", centronics_device, write))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
/* fdc */
MCFG_WD1770_ADD("wd177x", bbc_wd17xx_interface )

View File

@ -1311,40 +1311,6 @@ static const acia6850_interface swyft_acia_config =
DEVCB_NULL
};
static const via6522_interface swyft_via0_config =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_pa_r), // PA in
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_pb_r), // PB in
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_ca1_r), // CA1 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_cb1_r), // CB1 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_ca2_r), // CA2 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_cb2_r), // CB2 in callback
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_pa_w), // PA out
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_pb_w), // PB out
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_ca1_w), // CA1 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_cb1_w), // CA2 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_ca2_w), // CB1 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_cb2_w), // CB2 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via0_int_w), // interrupt callback
};
static const via6522_interface swyft_via1_config =
{
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_pa_r), // PA in
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_pb_r), // PB in
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_ca1_r), // CA1 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_cb1_r), // CB1 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_ca2_r), // CA2 in callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_cb2_r), // CB2 in callback
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_pa_w), // PA out
DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_pb_w), // PB out
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_ca1_w), // CA1 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_cb1_w), // CA2 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_ca2_w), // CB1 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_cb2_w), // CB2 out callback
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, cat_state, via1_int_w), // interrupt callback
};
READ8_MEMBER( cat_state::swyft_d0000 )
{
// wtf is this supposed to be?
@ -1567,8 +1533,35 @@ static MACHINE_CONFIG_START( swyft, cat_state )
MCFG_VIDEO_START_OVERRIDE(cat_state,swyft)
MCFG_ACIA6850_ADD("acia6850", swyft_acia_config) // unknown clock
MCFG_VIA6522_ADD("via6522_0", XTAL_15_8976MHz/16, swyft_via0_config) // unknown clock, GUESSED
MCFG_VIA6522_ADD("via6522_1", XTAL_15_8976MHz/16, swyft_via1_config) // unknown clock, GUESSED
MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_15_8976MHz/16) // unknown clock, GUESSED
MCFG_VIA6522_READPA_HANDLER(READ8(cat_state, via0_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(cat_state, via0_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(cat_state, via0_ca1_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(cat_state, via0_cb1_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(cat_state, via0_ca2_r))
MCFG_VIA6522_READCB2_HANDLER(READLINE(cat_state, via0_cb2_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cat_state, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cat_state, via0_pb_w))
MCFG_VIA6522_CA1_HANDLER(WRITELINE(cat_state, via0_ca1_w))
MCFG_VIA6522_CB1_HANDLER(WRITELINE(cat_state, via0_cb1_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(cat_state, via0_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(cat_state, via0_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cat_state, via0_int_w))
MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_15_8976MHz/16) // unknown clock, GUESSED
MCFG_VIA6522_READPA_HANDLER(READ8(cat_state, via1_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(cat_state, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(cat_state, via1_ca1_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(cat_state, via1_cb1_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(cat_state, via1_ca2_r))
MCFG_VIA6522_READCB2_HANDLER(READLINE(cat_state, via1_cb2_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cat_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cat_state, via1_pb_w))
MCFG_VIA6522_CA1_HANDLER(WRITELINE(cat_state, via1_ca1_w))
MCFG_VIA6522_CB1_HANDLER(WRITELINE(cat_state, via1_cb1_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(cat_state, via1_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(cat_state, via1_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cat_state, via1_int_w))
MACHINE_CONFIG_END
/* ROM definition */

View File

@ -376,43 +376,6 @@ void clcd_state::palette_init()
palette_set_color(machine(), 3, MAKE_RGB(32,240,32));
}
static const via6522_interface via0_intf =
{
DEVCB_NULL,//DEVCB_DRIVER_MEMBER(clcd_state, via0_pa_r),
DEVCB_DRIVER_MEMBER(clcd_state, via0_pb_r),
DEVCB_NULL, // RESTORE
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(clcd_state, via0_cb2_r),
DEVCB_DRIVER_MEMBER(clcd_state, via0_pa_w),
DEVCB_DRIVER_MEMBER(clcd_state, via0_pb_w),
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(clcd_state, via0_cb1_w),
DEVCB_NULL,//DEVCB_DRIVER_LINE_MEMBER(clcd_state, via0_ca2_w), // CASS MOTOR
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M65C02_IRQ_LINE)
};
static const via6522_interface via1_intf =
{
DEVCB_NULL,//DEVCB_DRIVER_MEMBER(clcd_state, via1_pa_r),
DEVCB_NULL,//DEVCB_DRIVER_MEMBER(clcd_state, via1_pb_r),
DEVCB_NULL, // CASS READ
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,//DEVCB_DRIVER_MEMBER(clcd_state, via1_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,//DEVCB_DRIVER_LINE_MEMBER(clcd_state, via1_ca2_w),
DEVCB_NULL,//DEVCB_DRIVER_LINE_MEMBER(clcd_state, via1_cb2_w),
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_NMI)
};
static const gfx_layout charset_8x8 =
{
6,8,
@ -433,8 +396,17 @@ static MACHINE_CONFIG_START( clcd, clcd_state )
MCFG_CPU_ADD("maincpu",M65C02, 2000000)
MCFG_CPU_PROGRAM_MAP(clcd_mem)
MCFG_VIA6522_ADD("via0", 0, via0_intf)
MCFG_VIA6522_ADD("via1", 0, via1_intf)
MCFG_DEVICE_ADD("via0", VIA6522, 0)
MCFG_VIA6522_READPB_HANDLER(READ8(clcd_state, via0_pb_r))
MCFG_VIA6522_READCB2_HANDLER(READLINE(clcd_state, via0_cb2_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(clcd_state, via0_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(clcd_state, via0_pb_w))
MCFG_VIA6522_CB1_HANDLER(WRITELINE(clcd_state, via0_cb1_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m65c02_device, irq_line))
MCFG_DEVICE_ADD("via1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m65c02_device, nmi_line))
MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* video hardware */

View File

@ -230,7 +230,13 @@ static MACHINE_CONFIG_START( concept, concept_state )
MCFG_MM58274C_ADD("mm58274c", concept_mm58274c_interface)
/* via */
MCFG_VIA6522_ADD("via6522_0", 1022750, concept_via6522_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1022750)
MCFG_VIA6522_READPA_HANDLER(READ8(concept_state, via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(concept_state, via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(concept_state, via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(concept_state, via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(concept_state, via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(concept_state, via_irq_func))
/* ACIAs */
MCFG_DEVICE_ADD(ACIA_0_TAG, MOS6551, XTAL_1_8432MHz)

View File

@ -33,7 +33,7 @@ public:
m_maincpu(*this, "maincpu") { }
DECLARE_READ8_MEMBER(ec65_via_read_a);
DECLARE_READ8_MEMBER(ec65_read_ca1 );
DECLARE_READ_LINE_MEMBER(ec65_read_ca1);
DECLARE_READ8_MEMBER(ec65_via_read_b);
DECLARE_WRITE8_MEMBER(ec65_via_write_a);
DECLARE_WRITE8_MEMBER(ec65_via_write_b);
@ -100,7 +100,7 @@ READ8_MEMBER( ec65_state::ec65_via_read_a)
return m_keyboard_input;
}
READ8_MEMBER( ec65_state::ec65_read_ca1 )
READ_LINE_MEMBER( ec65_state::ec65_read_ca1 )
{
return 0;
}
@ -118,40 +118,6 @@ WRITE8_MEMBER( ec65_state::ec65_via_write_b )
{
}
static const via6522_interface ec65_via_1_intf=
{
DEVCB_NULL, /* in_a_func */
DEVCB_DRIVER_MEMBER(ec65_state, ec65_via_read_b), /* in_b_func */
DEVCB_NULL, /* in_ca1_func */
DEVCB_NULL, /* in_cb1_func */
DEVCB_NULL, /* in_ca2_func */
DEVCB_NULL, /* in_cb2_func */
DEVCB_DRIVER_MEMBER(ec65_state, ec65_via_write_a), /* out_a_func */
DEVCB_DRIVER_MEMBER(ec65_state, ec65_via_write_b), /* out_b_func */
DEVCB_NULL, /* out_ca1_func */
DEVCB_NULL, /* out_cb1_func */
DEVCB_NULL, /* out_ca2_func */
DEVCB_NULL, /* out_cb2_func */
DEVCB_NULL, /* irq_func */
};
static const via6522_interface ec65_via_0_intf=
{
DEVCB_DRIVER_MEMBER(ec65_state, ec65_via_read_a), /* in_a_func */
DEVCB_NULL, /* in_b_func */
DEVCB_DRIVER_MEMBER(ec65_state, ec65_read_ca1), /* in_ca1_func */
DEVCB_NULL, /* in_cb1_func */
DEVCB_NULL, /* in_ca2_func */
DEVCB_NULL, /* in_cb2_func */
DEVCB_NULL, /* out_a_func */
DEVCB_NULL, /* out_b_func */
DEVCB_NULL, /* out_ca1_func */
DEVCB_NULL, /* out_cb1_func */
DEVCB_NULL, /* out_ca2_func */
DEVCB_NULL, /* out_cb2_func */
DEVCB_NULL, /* irq_func */
};
/* Input ports */
static INPUT_PORTS_START( ec65 )
INPUT_PORTS_END
@ -269,8 +235,16 @@ static MACHINE_CONFIG_START( ec65, ec65_state )
/* devices */
MCFG_PIA6821_ADD( PIA6821_TAG, ec65_pia_interface )
MCFG_ACIA6850_ADD(ACIA6850_TAG, ec65_acia_intf)
MCFG_VIA6522_ADD(VIA6522_0_TAG, XTAL_4MHz / 4, ec65_via_0_intf)
MCFG_VIA6522_ADD(VIA6522_1_TAG, XTAL_4MHz / 4, ec65_via_1_intf)
MCFG_DEVICE_ADD(VIA6522_0_TAG, VIA6522, XTAL_4MHz / 4)
MCFG_VIA6522_READPA_HANDLER(READ8(ec65_state, ec65_via_read_a))
MCFG_VIA6522_READCA1_HANDLER(READLINE(ec65_state, ec65_read_ca1))
MCFG_DEVICE_ADD(VIA6522_1_TAG, VIA6522, XTAL_4MHz / 4)
MCFG_VIA6522_READPB_HANDLER(READ8(ec65_state, ec65_via_read_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(ec65_state, ec65_via_write_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(ec65_state, ec65_via_write_b))
MCFG_DEVICE_ADD(ACIA6551_TAG, MOS6551, XTAL_1_8432MHz)
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
MACHINE_CONFIG_END

View File

@ -293,22 +293,6 @@ WRITE_LINE_MEMBER(jr100_state::jr100_via_write_cb2)
{
m_cassette->output(state ? -1.0 : +1.0);
}
static const via6522_interface jr100_via_intf =
{
DEVCB_NULL, /* in_a_func */
DEVCB_DRIVER_MEMBER(jr100_state,jr100_via_read_b), /* in_b_func */
DEVCB_NULL, /* in_ca1_func */
DEVCB_NULL, /* in_cb1_func */
DEVCB_NULL, /* in_ca2_func */
DEVCB_NULL, /* in_cb2_func */
DEVCB_DRIVER_MEMBER(jr100_state,jr100_via_write_a), /* out_a_func */
DEVCB_DRIVER_MEMBER(jr100_state,jr100_via_write_b), /* out_b_func */
DEVCB_NULL, /* out_ca1_func */
DEVCB_NULL, /* out_cb1_func */
DEVCB_NULL, /* out_ca2_func */
DEVCB_DRIVER_LINE_MEMBER(jr100_state, jr100_via_write_cb2), /* out_cb2_func */
DEVCB_NULL /* irq_func */
};
static const cassette_interface jr100_cassette_interface =
{
cassette_default_formats,
@ -404,8 +388,11 @@ static MACHINE_CONFIG_START( jr100, jr100_state )
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white)
MCFG_VIA6522_ADD("via", XTAL_14_31818MHz / 16, jr100_via_intf)
MCFG_DEVICE_ADD("via", VIA6522, XTAL_14_31818MHz / 16)
MCFG_VIA6522_READPB_HANDLER(READ8(jr100_state,jr100_via_read_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(jr100_state,jr100_via_write_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(jr100_state,jr100_via_write_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(jr100_state, jr100_via_write_cb2))
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")

View File

@ -172,8 +172,16 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
MCFG_SOFTWARE_LIST_ADD("disk_list","lisa")
/* via */
MCFG_VIA6522_ADD("via6522_0", 500000, lisa_via6522_0_intf)
MCFG_VIA6522_ADD("via6522_1", 500000, lisa_via6522_1_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 500000)
MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, COPS_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(lisa_state, COPS_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(lisa_state, COPS_via_out_b))
MCFG_VIA6522_CA1_HANDLER(WRITELINE(lisa_state, COPS_via_out_ca2))
MCFG_VIA6522_CB1_HANDLER(WRITELINE(lisa_state, COPS_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(lisa_state, COPS_via_irq_func))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 500000)
MCFG_VIA6522_READPB_HANDLER(READ8(lisa_state, parallel_via_in_b))
MCFG_SCC8530_ADD("scc", 7833600, line_cb_t(FUNC(lisa_state::set_scc_interrupt), static_cast<lisa_state *>(owner)))
MACHINE_CONFIG_END
@ -187,10 +195,10 @@ static MACHINE_CONFIG_DERIVED( lisa210, lisa )
MCFG_IWM_MODIFY("fdc", lisa210_fdc_interface)
/* via */
MCFG_DEVICE_REMOVE("via6522_0")
MCFG_DEVICE_REMOVE("via6522_1")
MCFG_VIA6522_ADD("via6522_0", 1250000, lisa_via6522_0_intf)
MCFG_VIA6522_ADD("via6522_1", 1250000, lisa_via6522_1_intf)
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_DEVICE_CLOCK(1250000)
MCFG_DEVICE_MODIFY("via6522_1")
MCFG_DEVICE_CLOCK(1250000)
MACHINE_CONFIG_END

View File

@ -962,7 +962,17 @@ static MACHINE_CONFIG_START( mac512ke, mac_state )
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 1000000, mac_via6522_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
#ifdef MAC_USE_EMULATED_KBD
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_via_in_cb2))
#endif
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_MACKBD_ADD()
MCFG_MACKBD_CLKOUT_HANDLER(WRITELINE(mac_state, mac_kbd_clk_in))
@ -1006,7 +1016,14 @@ static MACHINE_CONFIG_DERIVED( macse, macplus )
MCFG_CPU_PROGRAM_MAP(macse_map)
MCFG_DEVICE_REMOVE("via6522_0")
MCFG_VIA6522_ADD("via6522_0", 1000000, mac_via6522_adb_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
/* internal ram */
MCFG_RAM_MODIFY(RAM_TAG)
@ -1024,7 +1041,14 @@ static MACHINE_CONFIG_DERIVED( macclasc, macplus )
MCFG_CPU_PROGRAM_MAP(macse_map)
MCFG_DEVICE_REMOVE("via6522_0")
MCFG_VIA6522_ADD("via6522_0", 1000000, mac_via6522_adb_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
/* internal ram */
MCFG_RAM_MODIFY(RAM_TAG)
@ -1072,7 +1096,16 @@ static MACHINE_CONFIG_START( macprtb, mac_state )
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
#ifdef MAC_USE_EMULATED_KBD
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_via_in_cb2))
#endif
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1118,8 +1151,21 @@ static MACHINE_CONFIG_START( macii, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", C7M/10, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1168,7 +1214,14 @@ static MACHINE_CONFIG_START( maciifx, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1371,8 +1424,21 @@ static MACHINE_CONFIG_START( macse30, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1419,8 +1485,21 @@ static MACHINE_CONFIG_START( macpb140, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1487,8 +1566,21 @@ static MACHINE_CONFIG_START( macpb160, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1656,8 +1748,21 @@ static MACHINE_CONFIG_START( pwrmac, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@ -1701,8 +1806,21 @@ static MACHINE_CONFIG_START( macqd700, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf)
MCFG_VIA6522_ADD("via6522_1", C7M/10, mac_via6522_2_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mac_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
MCFG_SCSIBUS_ADD("scsi")
MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6)

View File

@ -126,7 +126,15 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("32M")
MCFG_VIA6522_ADD("via6522_0", C7M/10, pcimac_via6522_intf)
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(macpci_state, mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(macpci_state, mac_via_in_b))
MCFG_VIA6522_READCB2_HANDLER(READLINE(macpci_state,mac_adb_via_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(macpci_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(macpci_state,mac_via_out_b))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(macpci_state, mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(macpci_state,mac_via_irq))
// MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(macpci_state::set_scc_interrupt), static_cast<macpci_state *>(owner)))
MCFG_CUDA_ADD(CUDA_341S0060, mac_cuda_interface)
MCFG_QUANTUM_PERFECT_CPU("maincpu")

View File

@ -258,8 +258,31 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, microtan_via6522_0)
MCFG_VIA6522_ADD("via6522_1", 0, microtan_via6522_1)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_0_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_0_in_b))
MCFG_VIA6522_READCA1_HANDLER(READLINE(microtan_state, via_0_in_ca1))
MCFG_VIA6522_READCB1_HANDLER(READLINE(microtan_state, via_0_in_cb1))
MCFG_VIA6522_READCA2_HANDLER(READLINE(microtan_state, via_0_in_ca2))
MCFG_VIA6522_READCB2_HANDLER(READLINE(microtan_state, via_0_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_0_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_0_out_b))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_0_out_ca2))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(microtan_state, via_0_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(microtan_state, via_0_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(microtan_state, via_1_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(microtan_state, via_1_in_b))
MCFG_VIA6522_READCA1_HANDLER(READLINE(microtan_state, via_1_in_ca1))
MCFG_VIA6522_READCB1_HANDLER(READLINE(microtan_state, via_1_in_cb1))
MCFG_VIA6522_READCA2_HANDLER(READLINE(microtan_state, via_1_in_ca2))
MCFG_VIA6522_READCB2_HANDLER(READLINE(microtan_state, via_1_in_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(microtan_state, via_1_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(microtan_state, via_1_out_b))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(microtan_state, via_1_out_ca2))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(microtan_state, via_1_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(microtan_state, via_1_irq))
MACHINE_CONFIG_END
ROM_START( microtan )

View File

@ -78,10 +78,10 @@ public:
DECLARE_WRITE8_MEMBER(mirage_via_write_portb);
DECLARE_READ8_MEMBER(mirage_via_read_porta);
DECLARE_READ8_MEMBER(mirage_via_read_portb);
DECLARE_READ8_MEMBER(mirage_via_read_ca1);
DECLARE_READ8_MEMBER(mirage_via_read_cb1);
DECLARE_READ8_MEMBER(mirage_via_read_ca2);
DECLARE_READ8_MEMBER(mirage_via_read_cb2);
DECLARE_READ_LINE_MEMBER(mirage_via_read_ca1);
DECLARE_READ_LINE_MEMBER(mirage_via_read_cb1);
DECLARE_READ_LINE_MEMBER(mirage_via_read_ca2);
DECLARE_READ_LINE_MEMBER(mirage_via_read_cb2);
DECLARE_WRITE_LINE_MEMBER(acia_irq_w);
@ -239,47 +239,30 @@ READ8_MEMBER(mirage_state::mirage_via_read_portb)
}
// external sync pulse
READ8_MEMBER(mirage_state::mirage_via_read_ca1)
READ_LINE_MEMBER(mirage_state::mirage_via_read_ca1)
{
return 0;
}
// keyscan
READ8_MEMBER(mirage_state::mirage_via_read_cb1)
READ_LINE_MEMBER(mirage_state::mirage_via_read_cb1)
{
return 0;
}
// keyscan
READ8_MEMBER(mirage_state::mirage_via_read_ca2)
READ_LINE_MEMBER(mirage_state::mirage_via_read_ca2)
{
return 0;
}
// keyscan
READ8_MEMBER(mirage_state::mirage_via_read_cb2)
READ_LINE_MEMBER(mirage_state::mirage_via_read_cb2)
{
return 0;
}
const via6522_interface mirage_via =
{
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_porta),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_portb),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_ca1),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_cb1),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_ca2),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_read_cb2),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_write_porta),
DEVCB_DRIVER_MEMBER(mirage_state, mirage_via_write_portb),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
};
static ACIA6850_INTERFACE( mirage_acia6850_interface )
{
0, // tx clock
@ -300,7 +283,16 @@ static MACHINE_CONFIG_START( mirage, mirage_state )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_VIA6522_ADD("via6522", 1000000, mirage_via)
MCFG_DEVICE_ADD("via6522", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(mirage_state, mirage_via_read_porta))
MCFG_VIA6522_READPB_HANDLER(READ8(mirage_state, mirage_via_read_portb))
MCFG_VIA6522_READCA1_HANDLER(READLINE(mirage_state, mirage_via_read_ca1))
MCFG_VIA6522_READCB1_HANDLER(READLINE(mirage_state, mirage_via_read_cb1))
MCFG_VIA6522_READCA2_HANDLER(READLINE(mirage_state, mirage_via_read_ca2))
MCFG_VIA6522_READCB2_HANDLER(READLINE(mirage_state, mirage_via_read_cb2))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mirage_state, mirage_via_write_porta))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mirage_state, mirage_via_write_portb))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6809_device, irq_line))
MCFG_ACIA6850_ADD("acia6850", mirage_acia6850_interface)

View File

@ -406,7 +406,16 @@ static MACHINE_CONFIG_START( oric, oric_state )
MCFG_CASSETTE_ADD( "cassette", oric_cassette_interface )
/* via */
MCFG_VIA6522_ADD( "via6522_0", 1000000, oric_6522_interface )
MCFG_DEVICE_ADD( "via6522_0", VIA6522, 1000000 )
MCFG_VIA6522_READPA_HANDLER(READ8(oric_state, oric_via_in_a_func))
MCFG_VIA6522_READPB_HANDLER(READ8(oric_state, oric_via_in_b_func))
MCFG_VIA6522_READCA2_HANDLER(READLINE(oric_state, oric_via_in_ca2_func))
MCFG_VIA6522_READCB2_HANDLER(READLINE(oric_state, oric_via_in_cb2_func))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(oric_state, oric_via_out_a_func))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(oric_state, oric_via_out_b_func))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(oric_state, oric_via_out_ca2_func))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(oric_state, oric_via_out_cb2_func))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(oric_state, oric_via_irq_func))
MCFG_WD1770_ADD("wd179x", oric_wd17xx_interface )
@ -428,7 +437,12 @@ static MACHINE_CONFIG_DERIVED( telstrat, oric )
MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD( "via6522_1", 1000000, telestrat_via2_interface )
MCFG_DEVICE_ADD( "via6522_1", VIA6522, 1000000 )
MCFG_VIA6522_READPA_HANDLER(READ8(oric_state, telestrat_via2_in_a_func))
MCFG_VIA6522_READPB_HANDLER(READ8(oric_state, telestrat_via2_in_b_func))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(oric_state, telestrat_via2_out_a_func))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(oric_state, telestrat_via2_out_b_func))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(oric_state, telestrat_via2_irq_func))
MACHINE_CONFIG_END

View File

@ -786,10 +786,6 @@ INPUT_PORTS_END
// DEVICE CONFIGURATION
//**************************************************************************
//-------------------------------------------------
// via6522_interface via_intf
//-------------------------------------------------
WRITE_LINE_MEMBER( pet_state::via_irq_w )
{
m_via_irq = state;
@ -874,23 +870,6 @@ WRITE_LINE_MEMBER( pet_state::via_cb2_w )
m_user->cb2_w(state);
}
const via6522_interface via_intf =
{
DEVCB_DEVICE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, pa_r),
DEVCB_DRIVER_MEMBER(pet_state, via_pb_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(PET_DATASSETTE_PORT2_TAG, pet_datassette_port_device, read),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(pet_state, via_pa_w),
DEVCB_DRIVER_MEMBER(pet_state, via_pb_w),
DEVCB_DEVICE_LINE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, ca1_w),
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(pet_state, via_ca2_w),
DEVCB_DRIVER_LINE_MEMBER(pet_state, via_cb2_w),
DEVCB_DRIVER_LINE_MEMBER(pet_state, via_irq_w)
};
//-------------------------------------------------
// pia6821_interface pia1_intf
@ -1467,7 +1446,17 @@ static MACHINE_CONFIG_START( pet, pet_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("sync_timer", pet_state, sync_tick, attotime::from_hz(120))
// devices
MCFG_VIA6522_ADD(M6522_TAG, XTAL_8MHz/8, via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_8MHz/8)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(PET_USER_PORT_TAG, pet_user_port_device, pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(pet_state, via_pb_r))
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE(PET_DATASSETTE_PORT2_TAG, pet_datassette_port_device, read))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(pet_state, via_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(pet_state, via_pb_w))
MCFG_VIA6522_CA1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, ca1_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(pet_state, via_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(pet_state, via_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(pet_state, via_irq_w))
MCFG_PIA6821_ADD(M6520_1_TAG, pia1_intf)
MCFG_PIA6821_ADD(M6520_2_TAG, pia2_intf)
MCFG_CBM_IEEE488_ADD("c4040")
@ -1747,7 +1736,17 @@ static MACHINE_CONFIG_START( pet80, pet80_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// devices
MCFG_VIA6522_ADD(M6522_TAG, XTAL_16MHz/16, via_intf)
MCFG_DEVICE_ADD(M6522_TAG, VIA6522, XTAL_16MHz/16)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(PET_USER_PORT_TAG, pet_user_port_device, pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(pet_state, via_pb_r))
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE(PET_DATASSETTE_PORT2_TAG, pet_datassette_port_device, read))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(pet_state, via_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(pet_state, via_pb_w))
MCFG_VIA6522_CA1_HANDLER(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, ca1_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(pet_state, via_ca2_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(pet_state, via_cb2_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(pet_state, via_irq_w))
MCFG_PIA6821_ADD(M6520_1_TAG, pia1_intf)
MCFG_PIA6821_ADD(M6520_2_TAG, pia2_intf)
MCFG_CBM_IEEE488_ADD("c8050")

View File

@ -331,7 +331,13 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state )
MCFG_ER59256_ADD(ER59256_TAG)
MCFG_VIA6522_ADD(VIA_TAG, 1000000, nimbus_via)
MCFG_DEVICE_ADD(VIA_TAG, VIA6522, 1000000)
MCFG_VIA6522_READPB_HANDLER(READ8(rmnimbus_state,nimbus_via_read_portb))
MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8(CENTRONICS_TAG, centronics_device, write))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(rmnimbus_state,nimbus_via_write_portb))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(CENTRONICS_TAG, centronics_device, strobe_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(rmnimbus_state,nimbus_via_irq_w))
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, nimbus_centronics_config)
/* sound hardware */

View File

@ -207,21 +207,6 @@ WRITE8_MEMBER(ssystem3_state::ssystem3_via_write_b)
via_0->write_portb(space,0, d );
}
static const via6522_interface ssystem3_via_config=
{
DEVCB_DRIVER_MEMBER(ssystem3_state,ssystem3_via_read_a),//read8_machine_func in_a_func;
DEVCB_DRIVER_MEMBER(ssystem3_state,ssystem3_via_read_b),//read8_machine_func in_b_func;
DEVCB_NULL,//read8_machine_func in_ca1_func;
DEVCB_NULL,//read8_machine_func in_cb1_func;
DEVCB_NULL,//read8_machine_func in_ca2_func;
DEVCB_NULL,//read8_machine_func in_cb2_func;
DEVCB_DRIVER_MEMBER(ssystem3_state,ssystem3_via_write_a),//write8_machine_func out_a_func;
DEVCB_DRIVER_MEMBER(ssystem3_state,ssystem3_via_write_b),//write8_machine_func out_b_func;
DEVCB_NULL,//write8_machine_func out_ca2_func;
DEVCB_NULL,//write8_machine_func out_cb2_func;
DEVCB_NULL,//void (*irq_func)(int state);
};
DRIVER_INIT_MEMBER(ssystem3_state,ssystem3)
{
ssystem3_playfield_reset();
@ -318,7 +303,11 @@ static MACHINE_CONFIG_START( ssystem3, ssystem3_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, ssystem3_via_config)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
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))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(ssystem3_state,ssystem3_via_write_b))
MACHINE_CONFIG_END

View File

@ -301,57 +301,6 @@ void sym1_state::machine_reset()
m_maincpu->reset();
}
const via6522_interface sym1_via0 =
{
DEVCB_NULL,
DEVCB_UNMAPPED,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_UNMAPPED,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
const via6522_interface sym1_via1 =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
const via6522_interface sym1_via2 =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(sym1_state, sym1_via2_a_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", M6502_IRQ_LINE)
};
//**************************************************************************
// ADDRESS MAPS
@ -391,9 +340,16 @@ static MACHINE_CONFIG_START( sym1, sym1_state )
// devices
MCFG_RIOT6532_ADD("riot", SYM1_CLOCK, sym1_r6532_interface)
MCFG_TTL74145_ADD("ttl74145", sym1_ttl74145_intf)
MCFG_VIA6522_ADD("via6522_0", 0, sym1_via0)
MCFG_VIA6522_ADD("via6522_1", 0, sym1_via1)
MCFG_VIA6522_ADD("via6522_2", 0, sym1_via2)
MCFG_DEVICE_ADD("via6522_0", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6502_device, irq_line))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 0)
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6502_device, irq_line))
MCFG_DEVICE_ADD("via6522_2", VIA6522, 0)
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(sym1_state, sym1_via2_a_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m6502_device, irq_line))
// internal ram
MCFG_RAM_ADD(RAM_TAG)

View File

@ -385,10 +385,6 @@ INPUT_PORTS_END
// DEVICE CONFIGURATION
//**************************************************************************
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
READ8_MEMBER( vic20_state::via1_pa_r )
{
/*
@ -452,27 +448,6 @@ WRITE8_MEMBER( vic20_state::via1_pa_w )
m_iec->atn_w(!BIT(data, 7));
}
static const via6522_interface via1_intf =
{
DEVCB_DRIVER_MEMBER(vic20_state, via1_pa_r),
DEVCB_DEVICE_MEMBER(VIC20_USER_PORT_TAG, vic20_user_port_device, pb_r),
DEVCB_INPUT_PORT("RESTORE"),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(vic20_state, via1_pa_w),
DEVCB_DEVICE_MEMBER(VIC20_USER_PORT_TAG, vic20_user_port_device, pb_w),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(VIC20_USER_PORT_TAG, vic20_user_port_device, cb1_w),
DEVCB_DEVICE_LINE_MEMBER(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w),
DEVCB_DEVICE_LINE_MEMBER(VIC20_USER_PORT_TAG, vic20_user_port_device, cb2_w),
DEVCB_CPU_INPUT_LINE(M6502_TAG, M6502_NMI_LINE)
};
//-------------------------------------------------
// via6522_interface via2_intf
//-------------------------------------------------
READ8_MEMBER( vic20_state::via2_pa_r )
{
@ -568,25 +543,6 @@ WRITE_LINE_MEMBER( vic20_state::via2_cb2_w )
m_iec->data_w(!state);
}
static const via6522_interface via2_intf =
{
DEVCB_DRIVER_MEMBER(vic20_state, via2_pa_r),
DEVCB_DRIVER_MEMBER(vic20_state, via2_pb_r),
DEVCB_DEVICE_LINE_MEMBER(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, read),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(vic20_state, via2_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(vic20_state, via2_ca2_w),
DEVCB_DRIVER_LINE_MEMBER(vic20_state, via2_cb2_w),
DEVCB_CPU_INPUT_LINE(M6502_TAG, M6502_IRQ_LINE)
};
//-------------------------------------------------
// VIC20_EXPANSION_INTERFACE( expansion_intf )
@ -664,8 +620,26 @@ void vic20_state::machine_reset()
static MACHINE_CONFIG_START( vic20, vic20_state )
// devices
MCFG_VIA6522_ADD(M6522_1_TAG, 0, via1_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, 0, via2_intf)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, 0)
MCFG_VIA6522_READPA_HANDLER(READ8(vic20_state, via1_pa_r))
MCFG_VIA6522_READPB_HANDLER(DEVREAD8(VIC20_USER_PORT_TAG, vic20_user_port_device, pb_r))
MCFG_VIA6522_READCA1_HANDLER(IOPORT("RESTORE"))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(vic20_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(DEVWRITE8(VIC20_USER_PORT_TAG, vic20_user_port_device, pb_w))
MCFG_VIA6522_CB1_HANDLER(DEVWRITELINE(VIC20_USER_PORT_TAG, vic20_user_port_device, cb1_w))
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, motor_w))
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE(VIC20_USER_PORT_TAG, vic20_user_port_device, cb2_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(M6502_TAG, m6502_device, 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_READCA1_HANDLER(DEVREADLINE(PET_DATASSETTE_PORT_TAG, pet_datassette_port_device, read))
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(DEVWRITELINE(M6502_TAG, m6502_device, 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))

View File

@ -422,10 +422,6 @@ static MC6852_INTERFACE( ssda_intf )
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
WRITE8_MEMBER( victor9k_state::via1_pa_w )
{
/*
@ -517,29 +513,6 @@ WRITE_LINE_MEMBER( victor9k_state::via1_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via1_intf =
{
DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_r),
DEVCB_DRIVER_MEMBER(victor9k_state, via1_pb_r),
DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, nrfd_r),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(IEEE488_TAG, ieee488_device, ndac_r),
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(victor9k_state, via1_pa_w),
DEVCB_DRIVER_MEMBER(victor9k_state, via1_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, codec_vol_w),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via1_irq_w)
};
//-------------------------------------------------
// via6522_interface via2_intf
//-------------------------------------------------
READ8_MEMBER( victor9k_state::via2_pa_r )
{
@ -627,29 +600,6 @@ WRITE_LINE_MEMBER( victor9k_state::via2_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via2_intf =
{
DEVCB_DRIVER_MEMBER(victor9k_state, via2_pa_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbrdy_r),
DEVCB_NULL, // SRQ/BUSY
DEVCB_DEVICE_LINE_MEMBER(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbdata_r),
DEVCB_DRIVER_MEMBER(victor9k_state, via2_pa_w),
DEVCB_DRIVER_MEMBER(victor9k_state, via2_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via2_irq_w)
};
//-------------------------------------------------
// via6522_interface via3_intf
//-------------------------------------------------
READ8_MEMBER( victor9k_state::via3_pa_r )
{
@ -738,29 +688,6 @@ WRITE_LINE_MEMBER( victor9k_state::via3_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via3_intf =
{
DEVCB_DRIVER_MEMBER(victor9k_state, via3_pa_r),
DEVCB_DRIVER_MEMBER(victor9k_state, via3_pb_r),
DEVCB_NULL, // J5-12
DEVCB_NULL, // J5-48
DEVCB_NULL, // J5-14
DEVCB_NULL, // J5-50
DEVCB_DRIVER_MEMBER(victor9k_state, via3_pa_w),
DEVCB_DRIVER_MEMBER(victor9k_state, via3_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via3_irq_w)
};
//-------------------------------------------------
// via6522_interface via4_intf
//-------------------------------------------------
WRITE8_MEMBER( victor9k_state::via4_pa_w )
{
@ -825,29 +752,6 @@ WRITE_LINE_MEMBER( victor9k_state::via4_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via4_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, ds0_r),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, ds1_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(victor9k_state, via4_pa_w),
DEVCB_DRIVER_MEMBER(victor9k_state, via4_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, mode_w),
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via4_irq_w)
};
//-------------------------------------------------
// via6522_interface via5_intf
//-------------------------------------------------
READ8_MEMBER( victor9k_state::via5_pa_r )
{
@ -909,29 +813,6 @@ WRITE_LINE_MEMBER( victor9k_state::via5_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via5_intf =
{
DEVCB_DRIVER_MEMBER(victor9k_state, via5_pa_r),
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, brdy_r),
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, rdy0_r),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, rdy1_r),
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(victor9k_state, via5_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via5_irq_w)
};
//-------------------------------------------------
// via6522_interface via1_intf
//-------------------------------------------------
READ8_MEMBER( victor9k_state::via6_pa_r )
{
@ -1082,25 +963,6 @@ WRITE_LINE_MEMBER( victor9k_state::via6_irq_w )
m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
}
static const via6522_interface via6_intf =
{
DEVCB_DRIVER_MEMBER(victor9k_state, via6_pa_r),
DEVCB_DRIVER_MEMBER(victor9k_state, via6_pb_r),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, gcrerr_r),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(victor9k_state, via6_pa_w),
DEVCB_DRIVER_MEMBER(victor9k_state, via6_pb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, drw_w),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, erase_w),
DEVCB_DRIVER_LINE_MEMBER(victor9k_state, via6_irq_w)
};
//-------------------------------------------------
// VICTOR9K_KEYBOARD_INTERFACE( kb_intf )
@ -1239,12 +1101,62 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
MCFG_PIT8253_ADD(I8253_TAG, pit_intf)
MCFG_UPD7201_ADD(UPD7201_TAG, XTAL_30MHz/30, mpsc_intf)
MCFG_MC6852_ADD(MC6852_TAG, XTAL_30MHz/30, ssda_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_30MHz/30, via1_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, XTAL_30MHz/30, via2_intf)
MCFG_VIA6522_ADD(M6522_3_TAG, XTAL_30MHz/30, via3_intf)
MCFG_VIA6522_ADD(M6522_4_TAG, XTAL_30MHz/30, via4_intf)
MCFG_VIA6522_ADD(M6522_5_TAG, XTAL_30MHz/30, via5_intf)
MCFG_VIA6522_ADD(M6522_6_TAG, XTAL_30MHz/30, via6_intf)
MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READPA_HANDLER(DEVREAD8(IEEE488_TAG, ieee488_device, dio_r))
MCFG_VIA6522_READPB_HANDLER(READ8(victor9k_state, via1_pb_r))
MCFG_VIA6522_READCA1_HANDLER(DEVREADLINE(IEEE488_TAG, ieee488_device, nrfd_r))
MCFG_VIA6522_READCA2_HANDLER(DEVREADLINE(IEEE488_TAG, ieee488_device, ndac_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via1_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via1_pb_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor9k_state, codec_vol_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via1_irq_w))
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via2_pa_r))
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbrdy_r))
MCFG_VIA6522_READCB2_HANDLER(DEVREADLINE(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbdata_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via2_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via2_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via2_irq_w))
MCFG_DEVICE_ADD(M6522_3_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via3_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(victor9k_state, via3_pb_r))
// CA1 J5-12
// CB1 J5-48
// CA2 J5-14
// CB2 J5-50
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via3_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via3_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via3_irq_w))
MCFG_DEVICE_ADD(M6522_4_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READCA1_HANDLER(READLINE(victor9k_state, ds0_r))
MCFG_VIA6522_READCB1_HANDLER(READLINE(victor9k_state, ds1_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via4_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via4_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor9k_state, mode_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via4_irq_w))
MCFG_DEVICE_ADD(M6522_5_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via5_pa_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(victor9k_state, brdy_r))
MCFG_VIA6522_READCA2_HANDLER(READLINE(victor9k_state, rdy0_r))
MCFG_VIA6522_READCB2_HANDLER(READLINE(victor9k_state, rdy1_r))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via5_pb_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via5_irq_w))
MCFG_DEVICE_ADD(M6522_6_TAG, VIA6522, XTAL_30MHz/30)
MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via6_pa_r))
MCFG_VIA6522_READPB_HANDLER(READ8(victor9k_state, via6_pb_r))
MCFG_VIA6522_READCA1_HANDLER(READLINE(victor9k_state, gcrerr_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via6_pa_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via6_pb_w))
MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor9k_state, drw_w))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor9k_state, erase_w))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via6_irq_w))
MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", floppy_image_device::default_floppy_formats)

View File

@ -767,23 +767,6 @@ struct im6402_interface wicat_video_uart_intf =
DEVCB_NULL, //m_out_tre_cb;
};
static via6522_interface wicat_via_intf =
{
DEVCB_DRIVER_MEMBER(wicat_state,via_a_r), // Port A in
DEVCB_DRIVER_MEMBER(wicat_state,via_b_r), // Port B in
DEVCB_NULL, // CA1 in
DEVCB_NULL, // CB1 in
DEVCB_NULL, // CA2 in
DEVCB_NULL, // CB2 in
DEVCB_DRIVER_MEMBER(wicat_state,via_a_w), // Port A out
DEVCB_DRIVER_MEMBER(wicat_state,via_b_w), // Port B out
DEVCB_NULL, // CA1 out
DEVCB_NULL, // CB1 out
DEVCB_NULL, // CA2 out
DEVCB_NULL, // CB2 out
DEVCB_CPU_INPUT_LINE("maincpu", M68K_IRQ_1) // IRQ
};
static mm58274c_interface wicat_rtc_intf =
{
0, // 12 hour
@ -808,7 +791,12 @@ static MACHINE_CONFIG_START( wicat, wicat_state )
MCFG_CPU_ADD("maincpu", M68000, XTAL_8MHz)
MCFG_CPU_PROGRAM_MAP(wicat_mem)
MCFG_VIA6522_ADD("via",XTAL_4MHz,wicat_via_intf)
MCFG_DEVICE_ADD("via", VIA6522, XTAL_4MHz)
MCFG_VIA6522_READPA_HANDLER(READ8(wicat_state, via_a_r))
MCFG_VIA6522_READPB_HANDLER(READ8(wicat_state, via_b_r))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(wicat_state, via_a_w))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(wicat_state, via_b_w))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m68000_device, write_irq1))
MCFG_MM58274C_ADD("rtc",wicat_rtc_intf) // actually an MM58174AN, but should be compatible

View File

@ -90,7 +90,5 @@ public:
/*----------- defined in machine/apple3.c -----------*/
extern const applefdc_interface apple3_fdc_interface;
extern const via6522_interface apple3_via_0_intf;
extern const via6522_interface apple3_via_1_intf;
#endif /* APPLE3_H_ */

View File

@ -332,10 +332,10 @@ public:
DECLARE_WRITE8_MEMBER(bbcb_via_system_write_portb);
DECLARE_READ8_MEMBER(bbcb_via_system_read_porta);
DECLARE_READ8_MEMBER(bbcb_via_system_read_portb);
DECLARE_READ8_MEMBER(bbcb_via_system_read_ca1);
DECLARE_READ8_MEMBER(bbcb_via_system_read_cb1);
DECLARE_READ8_MEMBER(bbcb_via_system_read_ca2);
DECLARE_READ8_MEMBER(bbcb_via_system_read_cb2);
DECLARE_READ_LINE_MEMBER(bbcb_via_system_read_ca1);
DECLARE_READ_LINE_MEMBER(bbcb_via_system_read_cb1);
DECLARE_READ_LINE_MEMBER(bbcb_via_system_read_ca2);
DECLARE_READ_LINE_MEMBER(bbcb_via_system_read_cb2);
DECLARE_WRITE_LINE_MEMBER(bbcb_via_system_irq_w);
DECLARE_READ8_MEMBER(bbcb_via_user_read_portb);
DECLARE_WRITE8_MEMBER(bbcb_via_user_write_portb);
@ -399,9 +399,6 @@ public:
extern const mc6845_interface bbc_mc6845_intf;
extern const via6522_interface bbcb_system_via;
extern const via6522_interface bbcb_user_via;
extern const i8271_interface bbc_i8271_interface;
extern const wd17xx_interface bbc_wd17xx_interface;

View File

@ -65,15 +65,11 @@ public:
DECLARE_WRITE8_MEMBER(via_out_a);
DECLARE_READ8_MEMBER(via_in_b);
DECLARE_WRITE8_MEMBER(via_out_b);
DECLARE_WRITE8_MEMBER(via_out_cb2);
DECLARE_WRITE_LINE_MEMBER(via_out_cb2);
DECLARE_WRITE_LINE_MEMBER(via_irq_func);
void concept_set_interrupt(int level, int state);
inline void post_in_KeyQueue(int keycode);
void poll_keyboard();
};
/*----------- defined in machine/concept.c -----------*/
extern const via6522_interface concept_via6522_intf;
#endif /* CONCEPT_H_ */

View File

@ -206,10 +206,10 @@ public:
TIMER_CALLBACK_MEMBER(read_COPS_command);
TIMER_CALLBACK_MEMBER(set_COPS_ready);
DECLARE_WRITE8_MEMBER(COPS_via_out_a);
DECLARE_WRITE8_MEMBER(COPS_via_out_ca2);
DECLARE_WRITE_LINE_MEMBER(COPS_via_out_ca2);
DECLARE_READ8_MEMBER(COPS_via_in_b);
DECLARE_WRITE8_MEMBER(COPS_via_out_b);
DECLARE_WRITE8_MEMBER(COPS_via_out_cb2);
DECLARE_WRITE_LINE_MEMBER(COPS_via_out_cb2);
DECLARE_READ8_MEMBER(parallel_via_in_b);
void field_interrupts();
@ -231,9 +231,6 @@ public:
/*----------- defined in machine/lisa.c -----------*/
extern const via6522_interface lisa_via6522_0_intf;
extern const via6522_interface lisa_via6522_1_intf;
extern NVRAM_HANDLER(lisa);

View File

@ -142,10 +142,6 @@ enum model_t
/*----------- defined in machine/mac.c -----------*/
extern const via6522_interface mac_via6522_intf;
extern const via6522_interface mac_via6522_2_intf;
extern const via6522_interface mac_via6522_adb_intf;
void mac_fdc_set_enable_lines(device_t *device, int enable_mask);
/*----------- defined in audio/mac.c -----------*/
@ -512,10 +508,10 @@ public:
TIMER_CALLBACK_MEMBER(mac_scanline_tick);
TIMER_CALLBACK_MEMBER(dafb_vbl_tick);
TIMER_CALLBACK_MEMBER(dafb_cursor_tick);
DECLARE_READ8_MEMBER(mac_via_in_cb2);
DECLARE_WRITE8_MEMBER(mac_via_out_cb2);
DECLARE_READ8_MEMBER(mac_adb_via_in_cb2);
DECLARE_WRITE8_MEMBER(mac_adb_via_out_cb2);
DECLARE_READ_LINE_MEMBER(mac_via_in_cb2);
DECLARE_WRITE_LINE_MEMBER(mac_via_out_cb2);
DECLARE_READ_LINE_MEMBER(mac_adb_via_in_cb2);
DECLARE_WRITE_LINE_MEMBER(mac_adb_via_out_cb2);
DECLARE_READ8_MEMBER(mac_via_in_a);
DECLARE_READ8_MEMBER(mac_via_in_b);
DECLARE_WRITE8_MEMBER(mac_via_out_a);

View File

@ -68,10 +68,6 @@ enum model_t
};
/*----------- defined in machine/pcimac.c -----------*/
extern const via6522_interface pcimac_via6522_intf;
/* Mac driver data */
@ -162,8 +158,8 @@ public:
DECLARE_READ8_MEMBER(mac_via_in_b);
DECLARE_WRITE8_MEMBER(mac_via_out_a);
DECLARE_WRITE8_MEMBER(mac_via_out_b);
DECLARE_READ8_MEMBER(mac_adb_via_in_cb2);
DECLARE_WRITE8_MEMBER(mac_adb_via_out_cb2);
DECLARE_READ_LINE_MEMBER(mac_adb_via_in_cb2);
DECLARE_WRITE_LINE_MEMBER(mac_adb_via_out_cb2);
DECLARE_WRITE_LINE_MEMBER(mac_via_irq);
void mac_driver_init(model_t model);
};

View File

@ -65,24 +65,24 @@ public:
TIMER_CALLBACK_MEMBER(microtan_pulse_nmi);
DECLARE_READ8_MEMBER(via_0_in_a);
DECLARE_READ8_MEMBER(via_0_in_b);
DECLARE_READ8_MEMBER(via_0_in_ca1);
DECLARE_READ8_MEMBER(via_0_in_cb1);
DECLARE_READ8_MEMBER(via_0_in_ca2);
DECLARE_READ8_MEMBER(via_0_in_cb2);
DECLARE_READ_LINE_MEMBER(via_0_in_ca1);
DECLARE_READ_LINE_MEMBER(via_0_in_cb1);
DECLARE_READ_LINE_MEMBER(via_0_in_ca2);
DECLARE_READ_LINE_MEMBER(via_0_in_cb2);
DECLARE_WRITE8_MEMBER(via_0_out_a);
DECLARE_WRITE8_MEMBER(via_0_out_b);
DECLARE_WRITE8_MEMBER(via_0_out_ca2);
DECLARE_WRITE8_MEMBER(via_0_out_cb2);
DECLARE_WRITE_LINE_MEMBER(via_0_out_ca2);
DECLARE_WRITE_LINE_MEMBER(via_0_out_cb2);
DECLARE_READ8_MEMBER(via_1_in_a);
DECLARE_READ8_MEMBER(via_1_in_b);
DECLARE_READ8_MEMBER(via_1_in_ca1);
DECLARE_READ8_MEMBER(via_1_in_cb1);
DECLARE_READ8_MEMBER(via_1_in_ca2);
DECLARE_READ8_MEMBER(via_1_in_cb2);
DECLARE_READ_LINE_MEMBER(via_1_in_ca1);
DECLARE_READ_LINE_MEMBER(via_1_in_cb1);
DECLARE_READ_LINE_MEMBER(via_1_in_ca2);
DECLARE_READ_LINE_MEMBER(via_1_in_cb2);
DECLARE_WRITE8_MEMBER(via_1_out_a);
DECLARE_WRITE8_MEMBER(via_1_out_b);
DECLARE_WRITE8_MEMBER(via_1_out_ca2);
DECLARE_WRITE8_MEMBER(via_1_out_cb2);
DECLARE_WRITE_LINE_MEMBER(via_1_out_ca2);
DECLARE_WRITE_LINE_MEMBER(via_1_out_cb2);
DECLARE_WRITE_LINE_MEMBER(via_0_irq);
DECLARE_WRITE_LINE_MEMBER(via_1_irq);
required_device<cpu_device> m_maincpu;
@ -102,9 +102,4 @@ protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};
/*----------- defined in machine/microtan.c -----------*/
extern const via6522_interface microtan_via6522_0;
extern const via6522_interface microtan_via6522_1;
#endif /* MICROTAN_H_ */

View File

@ -136,10 +136,10 @@ public:
DECLARE_READ8_MEMBER(oric_via_in_b_func);
DECLARE_WRITE8_MEMBER(oric_via_out_a_func);
DECLARE_WRITE8_MEMBER(oric_via_out_b_func);
DECLARE_READ8_MEMBER(oric_via_in_ca2_func);
DECLARE_READ8_MEMBER(oric_via_in_cb2_func);
DECLARE_WRITE8_MEMBER(oric_via_out_ca2_func);
DECLARE_WRITE8_MEMBER(oric_via_out_cb2_func);
DECLARE_READ_LINE_MEMBER(oric_via_in_ca2_func);
DECLARE_READ_LINE_MEMBER(oric_via_in_cb2_func);
DECLARE_WRITE_LINE_MEMBER(oric_via_out_ca2_func);
DECLARE_WRITE_LINE_MEMBER(oric_via_out_cb2_func);
DECLARE_WRITE_LINE_MEMBER(oric_jasmin_wd179x_drq_w);
DECLARE_WRITE_LINE_MEMBER(oric_microdisc_wd179x_intrq_w);
DECLARE_WRITE_LINE_MEMBER(oric_microdisc_wd179x_drq_w);
@ -198,8 +198,6 @@ protected:
};
/*----------- defined in machine/oric.c -----------*/
extern const via6522_interface oric_6522_interface;
extern const via6522_interface telestrat_via2_interface;
extern const wd17xx_interface oric_wd17xx_interface;
#endif /* ORIC_H_ */

View File

@ -369,8 +369,6 @@ enum
#define VIA_INT 0x03
extern const via6522_interface nimbus_via;
/*----------- defined in video/rmnimbus.c -----------*/

View File

@ -498,40 +498,6 @@ WRITE_LINE_MEMBER(apple3_state::apple2_via_1_irq_func)
m_via_1_irq = state;
}
const via6522_interface apple3_via_0_intf =
{
DEVCB_NULL, /* in_a_func */
DEVCB_NULL, /* in_b_func */
DEVCB_NULL, /* in_ca1_func */
DEVCB_NULL, /* in_cb1_func */
DEVCB_NULL, /* in_ca2_func */
DEVCB_NULL, /* in_cb2_func */
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_0_out_a), /* out_a_func */
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_0_out_b), /* out_b_func */
DEVCB_NULL, /* out_ca1_func */
DEVCB_NULL, /* out_cb1_func */
DEVCB_NULL, /* out_ca2_func */
DEVCB_NULL, /* out_cb2_func */
DEVCB_NULL /* irq_func */
};
const via6522_interface apple3_via_1_intf =
{
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_1_in_a), /* in_a_func */
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_1_in_b), /* in_b_func */
DEVCB_NULL, /* in_ca1_func */
DEVCB_NULL, /* in_cb1_func */
DEVCB_NULL, /* in_ca2_func */
DEVCB_NULL, /* in_cb2_func */
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_1_out_a), /* out_a_func */
DEVCB_DRIVER_MEMBER(apple3_state,apple3_via_1_out_b), /* out_b_func */
DEVCB_NULL, /* out_ca1_func */
DEVCB_NULL, /* out_cb1_func */
DEVCB_NULL, /* out_ca2_func */
DEVCB_NULL, /* out_cb2_func */
DEVCB_DRIVER_LINE_MEMBER(apple3_state,apple2_via_1_irq_func) /* irq_func */
};
MACHINE_RESET_MEMBER(apple3_state,apple3)

View File

@ -1158,28 +1158,28 @@ READ8_MEMBER(bbc_state::bbcb_via_system_read_portb)
/* vertical sync pulse from video circuit */
READ8_MEMBER(bbc_state::bbcb_via_system_read_ca1)
READ_LINE_MEMBER(bbc_state::bbcb_via_system_read_ca1)
{
return 0x01;
}
/* joystick EOC */
READ8_MEMBER(bbc_state::bbcb_via_system_read_cb1)
READ_LINE_MEMBER(bbc_state::bbcb_via_system_read_cb1)
{
return uPD7002_EOC_r(machine().device("upd7002"), space, 0);
return uPD7002_EOC_r(machine().device("upd7002"), generic_space(), 0);
}
/* keyboard pressed detect */
READ8_MEMBER(bbc_state::bbcb_via_system_read_ca2)
READ_LINE_MEMBER(bbc_state::bbcb_via_system_read_ca2)
{
return 0x01;
}
/* light pen strobe detect (not emulated) */
READ8_MEMBER(bbc_state::bbcb_via_system_read_cb2)
READ_LINE_MEMBER(bbc_state::bbcb_via_system_read_cb2)
{
return 0x01;
}
@ -1192,24 +1192,6 @@ WRITE_LINE_MEMBER(bbc_state::bbcb_via_system_irq_w)
check_interrupts();
}
const via6522_interface bbcb_system_via =
{
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_porta),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_portb),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_ca1),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_cb1),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_ca2),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_read_cb2),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_write_porta),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_system_write_portb),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(bbc_state,bbcb_via_system_irq_w)
};
/**********************************************************************
USER VIA
Port A output is buffered before being connected to the printer connector.
@ -1237,23 +1219,6 @@ WRITE_LINE_MEMBER(bbc_state::bbcb_via_user_irq_w)
check_interrupts();
}
const via6522_interface bbcb_user_via =
{
DEVCB_NULL, //via_user_read_porta,
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_user_read_portb),
DEVCB_NULL, //via_user_read_ca1,
DEVCB_NULL, //via_user_read_cb1,
DEVCB_NULL, //via_user_read_ca2,
DEVCB_NULL, //via_user_read_cb2,
DEVCB_DEVICE_MEMBER("centronics", centronics_device, write),
DEVCB_DRIVER_MEMBER(bbc_state,bbcb_via_user_write_portb),
DEVCB_NULL, //via_user_write_ca1
DEVCB_NULL, //via_user_write_cb1
DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w),
DEVCB_NULL, //via_user_write_cb2,
DEVCB_DRIVER_LINE_MEMBER(bbc_state,bbcb_via_user_irq_w)
};
/**************************************
BBC Joystick Support

View File

@ -33,20 +33,8 @@ enum
/*static int ready;*/ /* ready line from monochip, role unknown */
/* Via */
static void via_irq_func(device_t *device, int state);
const via6522_interface concept_via6522_intf =
{ /* main via */
DEVCB_DRIVER_MEMBER(concept_state,via_in_a), DEVCB_DRIVER_MEMBER(concept_state,via_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_MEMBER(concept_state,via_out_a), DEVCB_DRIVER_MEMBER(concept_state,via_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(concept_state,via_out_cb2),
DEVCB_LINE(via_irq_func)
};
void concept_state::machine_start()
{
/* initialize int state */
@ -223,18 +211,17 @@ WRITE8_MEMBER(concept_state::via_out_b)
/*
VIA CB2: used as sound output
*/
WRITE8_MEMBER(concept_state::via_out_cb2)
WRITE_LINE_MEMBER(concept_state::via_out_cb2)
{
LOG(("via_out_cb2: Sound control written: data=0x%2.2x\n", data));
LOG(("via_out_cb2: Sound control written: data=0x%2.2x\n", state));
}
/*
VIA irq -> 68k level 5
*/
static void via_irq_func(device_t *device, int state)
WRITE_LINE_MEMBER(concept_state::via_irq_func)
{
concept_state *drvstate = device->machine().driver_data<concept_state>();
drvstate->concept_set_interrupt(TIMINT_level, state);
concept_set_interrupt(TIMINT_level, state);
}
READ16_MEMBER(concept_state::concept_io_r)

View File

@ -85,29 +85,6 @@ the drive type (TWIGGY or 3.5'')) */
a hard disk
*/
const via6522_interface lisa_via6522_0_intf =
{
/* COPS via */
DEVCB_NULL, DEVCB_DRIVER_MEMBER(lisa_state,COPS_via_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_MEMBER(lisa_state,COPS_via_out_a), DEVCB_DRIVER_MEMBER(lisa_state,COPS_via_out_b),
DEVCB_DRIVER_MEMBER(lisa_state,COPS_via_out_ca2), DEVCB_DRIVER_MEMBER(lisa_state,COPS_via_out_cb2),
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(lisa_state,COPS_via_irq_func)
};
const via6522_interface lisa_via6522_1_intf =
{
/* parallel interface via - incomplete */
DEVCB_NULL, DEVCB_DRIVER_MEMBER(lisa_state,parallel_via_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL
};
/*
floppy disk interface
*/
@ -408,7 +385,7 @@ TIMER_CALLBACK_MEMBER(lisa_state::read_COPS_command)
COPS_send_data_if_possible();
/* some pull-ups allow the COPS to read 1s when the VIA port is not set as output */
command = (m_COPS_command | (~ m_via0->read(space, VIA_DDRA))) & 0xff;
command = (m_COPS_command | (~ m_via0->read(space, via6522_device::VIA_DDRA))) & 0xff;
// printf("Dropping Ready, command = %02x\n", command);
@ -655,9 +632,9 @@ WRITE8_MEMBER(lisa_state::COPS_via_out_a)
m_COPS_command = data;
}
WRITE8_MEMBER(lisa_state::COPS_via_out_ca2)
WRITE_LINE_MEMBER(lisa_state::COPS_via_out_ca2)
{
m_hold_COPS_data = data;
m_hold_COPS_data = state;
/*logerror("COPS CA2 line state : %d\n", val);*/
@ -695,7 +672,7 @@ READ8_MEMBER(lisa_state::COPS_via_in_b)
WRITE8_MEMBER(lisa_state::COPS_via_out_b)
{
/* pull-up */
data |= (~ m_via0->read(space,VIA_DDRA)) & 0x01;
data |= (~ m_via0->read(space, via6522_device::VIA_DDRA)) & 0x01;
if (data & 0x01)
{
@ -716,9 +693,9 @@ WRITE8_MEMBER(lisa_state::COPS_via_out_b)
}
}
WRITE8_MEMBER(lisa_state::COPS_via_out_cb2)
WRITE_LINE_MEMBER(lisa_state::COPS_via_out_cb2)
{
m_speaker->level_w(data);
m_speaker->level_w(state);
}
void lisa_state::COPS_via_irq_func(int val)
@ -1030,7 +1007,7 @@ void lisa_state::machine_reset()
init_COPS();
{
COPS_via_out_ca2(generic_space(), 0, 0); /* VIA core forgets to do so */
COPS_via_out_ca2(0); /* VIA core forgets to do so */
}
/* initialize floppy */

View File

@ -121,44 +121,6 @@ extern TIMER_CALLBACK(mac_pmu_tick); // macadb.c
static offs_t mac_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options);
const via6522_interface mac_via6522_intf =
{
DEVCB_DRIVER_MEMBER(mac_state,mac_via_in_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_in_b),
DEVCB_NULL, DEVCB_NULL,
#ifdef MAC_USE_EMULATED_KBD
DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_via_in_cb2),
#else
DEVCB_NULL, DEVCB_NULL,
#endif
DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_cb2),
DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via_irq)
};
const via6522_interface mac_via6522_adb_intf =
{
DEVCB_DRIVER_MEMBER(mac_state,mac_via_in_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_adb_via_in_cb2),
DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(mac_state,mac_adb_via_out_cb2),
DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via_irq)
};
const via6522_interface mac_via6522_2_intf =
{
DEVCB_DRIVER_MEMBER(mac_state,mac_via2_in_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via2_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_MEMBER(mac_state,mac_via2_out_a), DEVCB_DRIVER_MEMBER(mac_state,mac_via2_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(mac_state,mac_via2_irq)
};
// returns non-zero if this Mac has ADB
int mac_state::has_adb()
{
@ -678,13 +640,13 @@ WRITE_LINE_MEMBER(mac_state::mac_kbd_clk_in)
}
#ifdef MAC_USE_EMULATED_KBD
READ8_MEMBER(mac_state::mac_via_in_cb2)
READ_LINE_MEMBER(mac_state::mac_via_in_cb2)
{
printf("Read %d from keyboard (PC=%x)\n", (m_mackbd->data_r() == ASSERT_LINE) ? 1 : 0, m_maincpu->pc());
return (m_mackbd->data_r() == ASSERT_LINE) ? 1 : 0;
}
WRITE8_MEMBER(mac_state::mac_via_out_cb2)
WRITE_LINE_MEMBER(mac_state::mac_via_out_cb2)
{
printf("Sending %d to kbd (PC=%x)\n", data, m_maincpu->pc());
m_mackbd->data_w((data & 1) ? ASSERT_LINE : CLEAR_LINE);
@ -730,9 +692,9 @@ void mac_state::kbd_shift_out(int data)
}
}
WRITE8_MEMBER(mac_state::mac_via_out_cb2)
WRITE_LINE_MEMBER(mac_state::mac_via_out_cb2)
{
if (m_kbd_comm == FALSE && data == 0)
if (m_kbd_comm == FALSE && state == 0)
{
/* Mac pulls CB2 down to initiate communication */
m_kbd_comm = TRUE;
@ -742,7 +704,7 @@ WRITE8_MEMBER(mac_state::mac_via_out_cb2)
if (m_kbd_comm == TRUE && m_kbd_receive == TRUE)
{
/* Shift in what mac is sending */
m_kbd_shift_reg = (m_kbd_shift_reg & ~1) | data;
m_kbd_shift_reg = (m_kbd_shift_reg & ~1) | state;
}
}
@ -1166,7 +1128,7 @@ WRITE16_MEMBER ( mac_state::mac_iwm_w )
fdc->write((offset >> 8), data>>8);
}
READ8_MEMBER(mac_state::mac_adb_via_in_cb2)
READ_LINE_MEMBER(mac_state::mac_adb_via_in_cb2)
{
UINT8 ret;
if (ADB_IS_EGRET)
@ -1194,21 +1156,21 @@ READ8_MEMBER(mac_state::mac_adb_via_in_cb2)
return ret;
}
WRITE8_MEMBER(mac_state::mac_adb_via_out_cb2)
WRITE_LINE_MEMBER(mac_state::mac_adb_via_out_cb2)
{
// printf("VIA OUT CB2 = %x\n", data);
// printf("VIA OUT CB2 = %x\n", state);
if (ADB_IS_EGRET)
{
m_egret->set_via_data(data & 1);
m_egret->set_via_data(state & 1);
}
else if (ADB_IS_CUDA)
{
m_cuda->set_via_data(data & 1);
m_cuda->set_via_data(state & 1);
}
else
{
m_adb_command <<= 1;
m_adb_command |= data & 1;
m_adb_command |= state & 1;
}
}

View File

@ -9,7 +9,6 @@
****************************************************************************/
#include "emu.h"
#include "machine/6522via.h"
#include "machine/8530scc.h"
#include "cpu/m68000/m68000.h"
#include "machine/applefdc.h"
@ -26,17 +25,6 @@
/* VIA1 Handlers */
const via6522_interface pcimac_via6522_intf =
{
DEVCB_DRIVER_MEMBER(macpci_state,mac_via_in_a), DEVCB_DRIVER_MEMBER(macpci_state,mac_via_in_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(macpci_state,mac_adb_via_in_cb2),
DEVCB_DRIVER_MEMBER(macpci_state,mac_via_out_a), DEVCB_DRIVER_MEMBER(macpci_state,mac_via_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL, DEVCB_DRIVER_MEMBER(macpci_state,mac_adb_via_out_cb2),
DEVCB_DRIVER_LINE_MEMBER(macpci_state,mac_via_irq)
};
WRITE_LINE_MEMBER(macpci_state::mac_via_irq)
{
}
@ -106,7 +94,7 @@ WRITE16_MEMBER ( macpci_state::mac_via_w )
m_maincpu->adjust_icount(m_via_cycles);
}
READ8_MEMBER(macpci_state::mac_adb_via_in_cb2)
READ_LINE_MEMBER(macpci_state::mac_adb_via_in_cb2)
{
UINT8 ret;
ret = m_cuda->get_via_data();
@ -117,9 +105,9 @@ READ8_MEMBER(macpci_state::mac_adb_via_in_cb2)
return ret;
}
WRITE8_MEMBER(macpci_state::mac_adb_via_out_cb2)
WRITE_LINE_MEMBER(macpci_state::mac_adb_via_out_cb2)
{
m_cuda->set_via_data(data & 1);
m_cuda->set_via_data(state);
}
void macpci_state::machine_start()

View File

@ -169,28 +169,28 @@ READ8_MEMBER(microtan_state::via_0_in_b)
return data;
}
READ8_MEMBER(microtan_state::via_0_in_ca1)
READ_LINE_MEMBER(microtan_state::via_0_in_ca1)
{
int data = 1;
LOG(("microtan_via_0_in_ca1 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_0_in_cb1)
READ_LINE_MEMBER(microtan_state::via_0_in_cb1)
{
int data = 1;
LOG(("microtan_via_0_in_cb1 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_0_in_ca2)
READ_LINE_MEMBER(microtan_state::via_0_in_ca2)
{
int data = 1;
LOG(("microtan_via_0_in_ca2 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_0_in_cb2)
READ_LINE_MEMBER(microtan_state::via_0_in_cb2)
{
int data = 1;
LOG(("microtan_via_0_in_cb2 %d\n", data));
@ -209,14 +209,14 @@ WRITE8_MEMBER(microtan_state::via_0_out_b)
m_cassette->output(data & 0x80 ? +1.0 : -1.0);
}
WRITE8_MEMBER(microtan_state::via_0_out_ca2)
WRITE_LINE_MEMBER(microtan_state::via_0_out_ca2)
{
LOG(("microtan_via_0_out_ca2 %d\n", data));
LOG(("microtan_via_0_out_ca2 %d\n", state));
}
WRITE8_MEMBER(microtan_state::via_0_out_cb2)
WRITE_LINE_MEMBER(microtan_state::via_0_out_cb2)
{
LOG(("microtan_via_0_out_cb2 %d\n", data));
LOG(("microtan_via_0_out_cb2 %d\n", state));
}
WRITE_LINE_MEMBER(microtan_state::via_0_irq)
@ -243,28 +243,28 @@ READ8_MEMBER(microtan_state::via_1_in_b)
return data;
}
READ8_MEMBER(microtan_state::via_1_in_ca1)
READ_LINE_MEMBER(microtan_state::via_1_in_ca1)
{
int data = 1;
LOG(("microtan_via_1_in_ca1 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_1_in_cb1)
READ_LINE_MEMBER(microtan_state::via_1_in_cb1)
{
int data = 1;
LOG(("microtan_via_1_in_cb1 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_1_in_ca2)
READ_LINE_MEMBER(microtan_state::via_1_in_ca2)
{
int data = 1;
LOG(("microtan_via_1_in_ca2 %d\n", data));
return data;
}
READ8_MEMBER(microtan_state::via_1_in_cb2)
READ_LINE_MEMBER(microtan_state::via_1_in_cb2)
{
int data = 1;
LOG(("microtan_via_1_in_cb2 %d\n", data));
@ -281,14 +281,14 @@ WRITE8_MEMBER(microtan_state::via_1_out_b)
LOG(("microtan_via_1_out_b %02X\n", data));
}
WRITE8_MEMBER(microtan_state::via_1_out_ca2)
WRITE_LINE_MEMBER(microtan_state::via_1_out_ca2)
{
LOG(("microtan_via_1_out_ca2 %d\n", data));
LOG(("microtan_via_1_out_ca2 %d\n", state));
}
WRITE8_MEMBER(microtan_state::via_1_out_cb2)
WRITE_LINE_MEMBER(microtan_state::via_1_out_cb2)
{
LOG(("microtan_via_1_out_cb2 %d\n", data));
LOG(("microtan_via_1_out_cb2 %d\n", state));
}
WRITE_LINE_MEMBER(microtan_state::via_1_irq)
@ -314,33 +314,6 @@ void microtan_state::device_timer(emu_timer &timer, device_timer_id id, int para
}
/**************************************************************
* VIA interface structure
**************************************************************/
const via6522_interface microtan_via6522_0 =
{
/* VIA#1 at bfc0-bfcf*/
DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_a), DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_b),
DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_ca1), DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_cb1),
DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_ca2), DEVCB_DRIVER_MEMBER(microtan_state,via_0_in_cb2),
DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_a), DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_ca2),DEVCB_DRIVER_MEMBER(microtan_state,via_0_out_cb2),
DEVCB_DRIVER_LINE_MEMBER(microtan_state,via_0_irq)
};
const via6522_interface microtan_via6522_1 =
{
/* VIA#1 at bfe0-bfef*/
DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_a), DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_b),
DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_ca1), DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_cb1),
DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_ca2), DEVCB_DRIVER_MEMBER(microtan_state,via_1_in_cb2),
DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_a), DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_b),
DEVCB_NULL, DEVCB_NULL,
DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_ca2),DEVCB_DRIVER_MEMBER(microtan_state,via_1_out_cb2),
DEVCB_DRIVER_LINE_MEMBER(microtan_state,via_1_irq)
};
TIMER_CALLBACK_MEMBER(microtan_state::microtan_read_cassette)
{
double level = m_cassette->input();

View File

@ -302,34 +302,34 @@ WRITE8_MEMBER(oric_state::oric_via_out_b_func)
}
READ8_MEMBER(oric_state::oric_via_in_ca2_func)
READ_LINE_MEMBER(oric_state::oric_via_in_ca2_func)
{
return m_psg_control & 1;
}
READ8_MEMBER(oric_state::oric_via_in_cb2_func)
READ_LINE_MEMBER(oric_state::oric_via_in_cb2_func)
{
return (m_psg_control>>1) & 1;
}
WRITE8_MEMBER(oric_state::oric_via_out_ca2_func)
WRITE_LINE_MEMBER(oric_state::oric_via_out_ca2_func)
{
m_psg_control &=~1;
if (data)
if (state)
m_psg_control |=1;
oric_psg_connection_refresh(space);
oric_psg_connection_refresh(generic_space());
}
WRITE8_MEMBER(oric_state::oric_via_out_cb2_func)
WRITE_LINE_MEMBER(oric_state::oric_via_out_cb2_func)
{
m_psg_control &=~2;
if (data)
if (state)
m_psg_control |=2;
oric_psg_connection_refresh(space);
oric_psg_connection_refresh(generic_space());
}
@ -385,23 +385,6 @@ CB2
*/
const via6522_interface oric_6522_interface=
{
DEVCB_DRIVER_MEMBER(oric_state,oric_via_in_a_func),
DEVCB_DRIVER_MEMBER(oric_state,oric_via_in_b_func),
DEVCB_NULL, /* printer acknowledge - handled by callback*/
DEVCB_NULL, /* tape input - handled by timer */
DEVCB_DRIVER_MEMBER(oric_state,oric_via_in_ca2_func),
DEVCB_DRIVER_MEMBER(oric_state,oric_via_in_cb2_func),
DEVCB_DRIVER_MEMBER(oric_state,oric_via_out_a_func),
DEVCB_DRIVER_MEMBER(oric_state,oric_via_out_b_func),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(oric_state,oric_via_out_ca2_func),
DEVCB_DRIVER_MEMBER(oric_state,oric_via_out_cb2_func),
DEVCB_DRIVER_LINE_MEMBER(oric_state,oric_via_irq_func),
};
@ -1323,23 +1306,6 @@ WRITE_LINE_MEMBER(oric_state::telestrat_via2_irq_func)
oric_refresh_ints();
}
const via6522_interface telestrat_via2_interface=
{
DEVCB_DRIVER_MEMBER(oric_state,telestrat_via2_in_a_func),
DEVCB_DRIVER_MEMBER(oric_state,telestrat_via2_in_b_func),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(oric_state,telestrat_via2_out_a_func),
DEVCB_DRIVER_MEMBER(oric_state,telestrat_via2_out_b_func),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(oric_state,telestrat_via2_irq_func),
};
#if 0
/* interrupt state from acia6551 */
void oric_state::telestrat_acia_callback(int irq_state)

View File

@ -2985,23 +2985,6 @@ WRITE_LINE_MEMBER(rmnimbus_state::nimbus_via_irq_w)
external_int(VIA_INT,0x00);
}
const via6522_interface nimbus_via =
{
DEVCB_NULL, //via_user_read_porta,
DEVCB_DRIVER_MEMBER(rmnimbus_state,nimbus_via_read_portb),
DEVCB_NULL, //via_user_read_ca1,
DEVCB_NULL, //via_user_read_cb1,
DEVCB_NULL, //via_user_read_ca2,
DEVCB_NULL, //via_user_read_cb2,
DEVCB_DEVICE_MEMBER(CENTRONICS_TAG, centronics_device, write),
DEVCB_DRIVER_MEMBER(rmnimbus_state,nimbus_via_write_portb),
DEVCB_NULL, //via_user_write_ca1
DEVCB_NULL, //via_user_write_cb1
DEVCB_DEVICE_LINE_MEMBER(CENTRONICS_TAG, centronics_device, strobe_w),
DEVCB_NULL, //via_user_write_cb2,
DEVCB_DRIVER_LINE_MEMBER(rmnimbus_state,nimbus_via_irq_w)
};
WRITE_LINE_MEMBER(rmnimbus_state::nimbus_ack_w)
{
via6522_device *via_1 = machine().device<via6522_device>(VIA_TAG);