mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
simplified read_port + make sure portc is 6 bits wide (meyc8088.c expects d6,7 to be set on read)
This commit is contained in:
parent
a91bbaade8
commit
8c8b37b75a
@ -159,36 +159,19 @@ inline UINT8 i8155_device::read_port(int port)
|
||||
{
|
||||
UINT8 data = 0;
|
||||
|
||||
switch (port)
|
||||
switch (get_port_mode(port))
|
||||
{
|
||||
case PORT_A:
|
||||
case PORT_B:
|
||||
switch (get_port_mode(port))
|
||||
{
|
||||
case PORT_MODE_INPUT:
|
||||
data = m_in_port_func[port](0);
|
||||
break;
|
||||
|
||||
case PORT_MODE_OUTPUT:
|
||||
data = m_output[port];
|
||||
break;
|
||||
}
|
||||
case PORT_MODE_INPUT:
|
||||
data = m_in_port_func[port](0);
|
||||
break;
|
||||
|
||||
case PORT_C:
|
||||
switch (get_port_mode(PORT_C))
|
||||
{
|
||||
case PORT_MODE_INPUT:
|
||||
data = m_in_port_func[port](0) & 0x3f;
|
||||
break;
|
||||
case PORT_MODE_OUTPUT:
|
||||
data = m_output[port];
|
||||
break;
|
||||
|
||||
case PORT_MODE_OUTPUT:
|
||||
data = m_output[port] & 0x3f;
|
||||
break;
|
||||
|
||||
default:
|
||||
logerror("8155 '%s' Unsupported Port C mode!\n", tag());
|
||||
}
|
||||
default:
|
||||
// strobed mode not implemented yet
|
||||
logerror("8155 '%s' Unsupported Port C mode!\n", tag());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -404,7 +387,7 @@ READ8_MEMBER( i8155_device::io_r )
|
||||
break;
|
||||
|
||||
case REGISTER_PORT_C:
|
||||
data = read_port(PORT_C);
|
||||
data = read_port(PORT_C) | 0xc0;
|
||||
break;
|
||||
|
||||
case REGISTER_TIMER_LOW:
|
||||
@ -501,7 +484,7 @@ void i8155_device::register_w(int offset, UINT8 data)
|
||||
break;
|
||||
|
||||
case REGISTER_PORT_C:
|
||||
write_port(PORT_C, data);
|
||||
write_port(PORT_C, data & 0x3f);
|
||||
break;
|
||||
|
||||
case REGISTER_TIMER_LOW:
|
||||
|
Loading…
Reference in New Issue
Block a user