bus/s100: Collect data reads by ANDing with FF, not ORing with 0 (nw)

This commit is contained in:
AJR 2018-11-25 15:51:25 -05:00
parent 0e4d68efd9
commit c8816e5e75
8 changed files with 16 additions and 16 deletions

View File

@ -305,7 +305,7 @@ uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
{
uint8_t data = 0;
// if (!(m_board_enbl & m_phantom)) return 0;
// if (!(m_board_enbl & m_phantom)) return 0xff;
if ((offset >= 0xf800) && (offset < 0xfbf8))
{
@ -368,7 +368,7 @@ uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
}
else
{
return 0;
return 0xff;
}
// LS241 inverts data
@ -475,7 +475,7 @@ void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t
uint8_t s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset)
{
return 0;
return 0xff;
}

View File

@ -235,7 +235,7 @@ void s100_mm65k16s_device::device_reset()
uint8_t s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset)
{
uint8_t data = 0;
uint8_t data = 0xff;
if (offset < 0xf800)
{

View File

@ -107,5 +107,5 @@ void s100_mds_a_device::device_reset()
uint8_t s100_mds_a_device::s100_smemr_r(address_space &space, offs_t offset)
{
return 0;
return 0xff;
}

View File

@ -109,5 +109,5 @@ void s100_mds_ad_device::device_reset()
uint8_t s100_mds_ad_device::s100_smemr_r(address_space &space, offs_t offset)
{
return 0;
return 0xff;
}

View File

@ -137,13 +137,13 @@ void s100_bus_device::add_card(device_s100_card_interface *card)
READ8_MEMBER( s100_bus_device::smemr_r )
{
uint8_t data = 0;
uint8_t data = 0xff;
device_s100_card_interface *entry = m_device_list.first();
while (entry)
{
data |= entry->s100_smemr_r(space, offset);
data &= entry->s100_smemr_r(space, offset);
entry = entry->next();
}
@ -173,13 +173,13 @@ WRITE8_MEMBER( s100_bus_device::mwrt_w )
READ8_MEMBER( s100_bus_device::sinp_r )
{
uint8_t data = 0;
uint8_t data = 0xff;
device_s100_card_interface *entry = m_device_list.first();
while (entry)
{
data |= entry->s100_sinp_r(space, offset);
data &= entry->s100_sinp_r(space, offset);
entry = entry->next();
}

View File

@ -148,7 +148,7 @@ public:
// interrupts
virtual void s100_int_w(int state) { }
virtual void s100_nmi_w(int state) { }
virtual uint8_t s100_sinta_r(offs_t offset) { return 0; }
virtual uint8_t s100_sinta_r(offs_t offset) { return 0xff; }
// vectored interrupts
virtual void s100_vi0_w(int state) { }
@ -161,11 +161,11 @@ public:
virtual void s100_vi7_w(int state) { }
// memory access
virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0; }
virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0xff; }
virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { }
// I/O access
virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0; }
virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0xff; }
virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { }
// configuration access

View File

@ -208,7 +208,7 @@ u8 s100_8k_sc_device::s100_smemr_r(address_space &space, offs_t offset)
if (board_selected(offset))
return m_ram[offset & 0x1fff];
else
return 0;
return 0xff;
}

View File

@ -303,9 +303,9 @@ void s100_wunderbus_device::s100_vi2_w(int state)
uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
{
uint8_t address = (m_7c->read() & 0x3e) << 2;
if ((offset & 0xf8) != address) return 0;
if ((offset & 0xf8) != address) return 0xff;
uint8_t data = 0;
uint8_t data = 0xff;
if ((offset & 0x07) < 7)
{