removed readpb & readcb2 callbacks from commodore LCD VIA6522 configuration. Changed write_cb2 to work with shift register [smf]

This commit is contained in:
smf- 2014-01-01 13:22:54 +00:00
parent e968792e52
commit 98df56b923
2 changed files with 16 additions and 21 deletions

View File

@ -1103,11 +1103,11 @@ WRITE_LINE_MEMBER( via6522_device::write_cb1 )
WRITE_LINE_MEMBER( via6522_device::write_cb2 )
{
/* CB2 is in input mode */
if (CB2_INPUT(m_pcr))
/* the new state has caused a transition */
if (m_in_cb2 != state)
{
/* the new state has caused a transition */
if (m_in_cb2 != state)
/* CB2 is in input mode */
if (CB2_INPUT(m_pcr))
{
/* handle the active transition */
if ((state && CB2_LOW_TO_HIGH(m_pcr)) || (!state && CB2_HIGH_TO_LOW(m_pcr)))
@ -1115,8 +1115,9 @@ WRITE_LINE_MEMBER( via6522_device::write_cb2 )
/* mark the IRQ */
set_int(INT_CB2);
}
/* set the new value for CB2 */
m_in_cb2 = state;
}
/* set the new value for CB2 */
m_in_cb2 = state;
}
}

View File

@ -45,9 +45,10 @@ public:
m_col5(*this,"COL5"),
m_col6(*this,"COL6"),
m_col7(*this,"COL7"),
m_special(*this,"SPECIAL")
,
m_maincpu(*this, "maincpu") {
m_special(*this,"SPECIAL"),
m_maincpu(*this, "maincpu"),
m_via0(*this, "via0")
{
}
TILE_GET_INFO_MEMBER(get_clcd_tilemap_tile_info)
@ -202,20 +203,12 @@ public:
}
keyShift = 0x10000;
m_via0->write_cb2( ( keyData & keyShift ) != 0 );
}
}
}
READ8_MEMBER( via0_pb_r )
{
return 0;
}
READ_LINE_MEMBER( via0_cb2_r )
{
return ( keyData & keyShift ) != 0;
}
WRITE_LINE_MEMBER( via0_cb1_w )
{
int newKeyClockState = state & 1;
@ -226,6 +219,8 @@ public:
if( keyClockState )
{
keyShift >>= 1;
m_via0->write_cb2( ( keyData & keyShift ) != 0 );
}
}
}
@ -249,6 +244,7 @@ private:
required_ioport m_col7;
required_ioport m_special;
required_device<cpu_device> m_maincpu;
required_device<via6522_device> m_via0;
};
static ADDRESS_MAP_START( clcd_mem, AS_PROGRAM, 8, clcd_state )
@ -397,8 +393,6 @@ static MACHINE_CONFIG_START( clcd, clcd_state )
MCFG_CPU_PROGRAM_MAP(clcd_mem)
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))