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; 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)) if ((offset >= 0xf800) && (offset < 0xfbf8))
{ {
@ -368,7 +368,7 @@ uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
} }
else else
{ {
return 0; return 0xff;
} }
// LS241 inverts data // 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) 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 s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset)
{ {
uint8_t data = 0; uint8_t data = 0xff;
if (offset < 0xf800) 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) 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) 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 ) READ8_MEMBER( s100_bus_device::smemr_r )
{ {
uint8_t data = 0; uint8_t data = 0xff;
device_s100_card_interface *entry = m_device_list.first(); device_s100_card_interface *entry = m_device_list.first();
while (entry) while (entry)
{ {
data |= entry->s100_smemr_r(space, offset); data &= entry->s100_smemr_r(space, offset);
entry = entry->next(); entry = entry->next();
} }
@ -173,13 +173,13 @@ WRITE8_MEMBER( s100_bus_device::mwrt_w )
READ8_MEMBER( s100_bus_device::sinp_r ) READ8_MEMBER( s100_bus_device::sinp_r )
{ {
uint8_t data = 0; uint8_t data = 0xff;
device_s100_card_interface *entry = m_device_list.first(); device_s100_card_interface *entry = m_device_list.first();
while (entry) while (entry)
{ {
data |= entry->s100_sinp_r(space, offset); data &= entry->s100_sinp_r(space, offset);
entry = entry->next(); entry = entry->next();
} }

View File

@ -148,7 +148,7 @@ public:
// interrupts // interrupts
virtual void s100_int_w(int state) { } virtual void s100_int_w(int state) { }
virtual void s100_nmi_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 // vectored interrupts
virtual void s100_vi0_w(int state) { } virtual void s100_vi0_w(int state) { }
@ -161,11 +161,11 @@ public:
virtual void s100_vi7_w(int state) { } virtual void s100_vi7_w(int state) { }
// memory access // 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) { } virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { }
// I/O access // 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) { } virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { }
// configuration access // 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)) if (board_selected(offset))
return m_ram[offset & 0x1fff]; return m_ram[offset & 0x1fff];
else 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 s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
{ {
uint8_t address = (m_7c->read() & 0x3e) << 2; 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) if ((offset & 0x07) < 7)
{ {