mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Convert VIA6522 to use DEVCB2 [smf]
This commit is contained in:
parent
67ebce528a
commit
72f6a2d0fb
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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 );
|
||||
};
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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"
|
||||
|
@ -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; }
|
||||
|
@ -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; };
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 );
|
||||
|
@ -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);
|
||||
|
@ -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_ */
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include "emu.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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",
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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_ */
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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_ */
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
};
|
||||
|
@ -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_ */
|
||||
|
@ -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_ */
|
||||
|
@ -369,8 +369,6 @@ enum
|
||||
|
||||
#define VIA_INT 0x03
|
||||
|
||||
extern const via6522_interface nimbus_via;
|
||||
|
||||
|
||||
/*----------- defined in video/rmnimbus.c -----------*/
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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();
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user