(BIT(val, 6)) ? 6 : (BIT(val, 7)) ? 7 : (BIT(val, 8)) ? 8 : (BIT(val, 9)) ? 9 : 10; } uint16_t m_nixie[16]; output_finder<6> m_nixie_out; output_finder<4> m_neon_out; }; WRITE8_MEMBER(nixieclock_state::nixie_w) { m_nixie[offset >> 4] = data; m_nixie_out[5] = nixie_to_num(((m_nixie[2] & 3)<<8) | (m_nixie[1] << 4) | m_nixie[0]); m_nixie_out[4] = nixie_to_num((m_nixie[4] << 6) | (m_nixie[3] << 2) | (m_nixie[2] >>2)); m_nixie_out[3] = nixie_to_num(((m_nixie[7] & 3)<<8) | (m_nixie[6] << 4) | m_nixie[5]); m_nixie_out[2] = nixie_to_num((m_nixie[9] << 6) | (m_nixie[8] << 2) | (m_nixie[7] >>2)); m_nixie_out[1] = nixie_to_num(((m_nixie[12] & 3)<<8) | (m_nixie[11] << 4) | m_nixie[10]); m_nixie_out[0] = nixie_to_num((m_nixie[14] << 6) | (m_nixie[13] << 2) | (m_nixie[12] >>2)); } WRITE8_MEMBER(nixieclock_state::neon_w) { m_neon_out[0] = BIT(data,3); m_neon_out[1] = BIT(data,2); m_neon_out[2] = BIT(data,1); m_neon_out[3] = BIT(data,0); }
{ output().set_indexed_value("nixie", index, value); } void output_set_neon_value(int index, int value) { output().set_indexed_value("neon", index, value); } uint16_t m_nixie[16]; }; WRITE8_MEMBER(nixieclock_state::nixie_w) { m_nixie[offset >> 4] = data; output_set_nixie_value(5, nixie_to_num(((m_nixie[2] & 3)<<8) | (m_nixie[1] << 4) | m_nixie[0])); output_set_nixie_value(4, nixie_to_num((m_nixie[4] << 6) | (m_nixie[3] << 2) | (m_nixie[2] >>2))); output_set_nixie_value(3, nixie_to_num(((m_nixie[7] & 3)<<8) | (m_nixie[6] << 4) | m_nixie[5])); output_set_nixie_value(2, nixie_to_num((m_nixie[9] << 6) | (m_nixie[8] << 2) | (m_nixie[7] >>2))); output_set_nixie_value(1, nixie_to_num(((m_nixie[12] & 3)<<8) | (m_nixie[11] << 4) | m_nixie[10])); output_set_nixie_value(0, nixie_to_num((m_nixie[14] << 6) | (m_nixie[13] << 2) | (m_nixie[12] >>2))); } WRITE8_MEMBER(nixieclock_state::neon_w) { output_set_neon_value(0, BIT(data,3)); output_set_neon_value(1, BIT(data,2)); output_set_neon_value(2, BIT(data,1)); output_set_neon_value(3, BIT(data,0)); }