diff options
Diffstat (limited to 'src/mame/machine/asteroid.cpp')
-rw-r--r-- | src/mame/machine/asteroid.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/mame/machine/asteroid.cpp b/src/mame/machine/asteroid.cpp index 80eebff4c2f..43154e8dc46 100644 --- a/src/mame/machine/asteroid.cpp +++ b/src/mame/machine/asteroid.cpp @@ -84,24 +84,13 @@ READ8_MEMBER(asteroid_state::asteroid_IN1_r) READ8_MEMBER(asteroid_state::asteroid_DSW1_r) { - // 765432-- not used - // ------1- ls253 dsw selector 2y - // -------0 ls253 dsw selector 1y + int res; + int res1; - uint8_t val = m_dsw1->read(); + res1 = ioport("DSW1")->read(); - m_dsw_sel->i3a_w(BIT(val, 0)); - m_dsw_sel->i3b_w(BIT(val, 1)); - m_dsw_sel->i2a_w(BIT(val, 2)); - m_dsw_sel->i2b_w(BIT(val, 3)); - m_dsw_sel->i1a_w(BIT(val, 4)); - m_dsw_sel->i1b_w(BIT(val, 5)); - m_dsw_sel->i0a_w(BIT(val, 6)); - m_dsw_sel->i0b_w(BIT(val, 7)); - - m_dsw_sel->s_w(space, 0, offset & 0x03); - - return 0xfc | (m_dsw_sel->zb_r() << 1) | m_dsw_sel->za_r(); + res = 0xfc | ((res1 >> (2 * (3 - (offset & 0x3)))) & 0x3); + return res; } |