mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
removed read_ca*/read_cb* as they just returned what you'd written to the chip already. [smf]
This commit is contained in:
parent
d794ba4dab
commit
e968792e52
@ -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); }
|
||||
|
@ -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
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user