void s6_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { switch(id) { case TIMER_IRQ: if(param == 1) { m_maincpu->set_input_line(M6808_IRQ_LINE, ASSERT_LINE); m_irq_timer->adjust(attotime::from_ticks(32,3580000/4),0); m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2)); // Advance m_pia28->cb1_w(BIT(ioport("DIAGS")->read(), 3)); // Up/Down } else { m_maincpu->set_input_line(M6808_IRQ_LINE, CLEAR_LINE); m_irq_timer->adjust(attotime::from_ticks(980,3580000/4),1); m_pia28->ca1_w(1); m_pia28->cb1_w(1); } break; } }
void v6809_state::kbd_put(u8 data) { m_term_data = data; m_pia0->cb1_w(0); m_pia0->cb1_w(1); }