removed read_ca*/read_cb* as they just returned what you'd written to the chip already. [smf]

This commit is contained in:
smf- 2014-01-01 11:32:52 +00:00
parent d794ba4dab
commit e968792e52
4 changed files with 11 additions and 16 deletions

View File

@ -79,8 +79,6 @@
class via6522_device : public device_t
{
friend class dart_channel;
public:
// construction/destruction
via6522_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@ -106,12 +104,6 @@ public:
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
// 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_WRITE_LINE_MEMBER( write_pa0 ) { write_pa(0, state); }
DECLARE_WRITE_LINE_MEMBER( write_pa1 ) { write_pa(1, state); }
DECLARE_WRITE_LINE_MEMBER( write_pa2 ) { write_pa(2, state); }

View File

@ -114,9 +114,7 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
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))
@ -125,12 +123,10 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
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))
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("audiocpu", m6809_device, irq_line))
MACHINE_CONFIG_END
/***************************************************************************

View File

@ -216,8 +216,10 @@ public:
m_key6(*this, "KEY6"),
m_montype(*this, "MONTYPE"),
m_vram(*this,"vram"),
m_vram16(*this,"vram16")
{ }
m_vram16(*this,"vram16"),
m_via2_ca1_hack(0)
{
}
required_device<cpu_device> m_maincpu;
required_device<via6522_device> m_via1;
@ -443,6 +445,8 @@ private:
// HMC for x100 PowerMacs
UINT64 m_hmc_reg, m_hmc_shiftout;
int m_via2_ca1_hack;
public:
emu_timer *m_scanline_timer;
emu_timer *m_adb_timer;

View File

@ -1844,6 +1844,7 @@ void mac_state::machine_reset()
}
else if (MAC_HAS_VIA2) // prime CB1 for ASC and slot interrupts
{
m_via2_ca1_hack = 1;
m_via2->write_ca1(1);
m_via2->write_cb1(1);
}
@ -2115,14 +2116,16 @@ void mac_state::nubus_slot_interrupt(UINT8 slot, UINT32 state)
if ((m_nubus_irq_state & mask) != mask)
{
// HACK: sometimes we miss an ack (possible misbehavior in the VIA?)
if (m_via2->read_ca1() == 0)
if (m_via2_ca1_hack == 0)
{
m_via2->write_ca1(1);
}
m_via2_ca1_hack = 0;
m_via2->write_ca1(0);
}
else
{
m_via2_ca1_hack = 1;
m_via2->write_ca1(1);
}
}