void mos6530_base_t::device_reset() { m_pa_out = 0xff; m_pa_ddr = 0; m_pb_out = 0xff; // a7800 One-On-One Basketball (1on1u) needs this or you can't start a game, it doesn't initialize it. (see MT6060) m_pb_ddr = 0; m_ie_timer = false; m_irq_timer = false; m_ie_edge = false; m_irq_edge = false; m_pa7_dir = 0; update_pa(); update_pb(); update_irq(); edge_detect(); m_timer = 0xff; m_prescale = 1024; if (cur_live.state != IDLE) { live_abort(); } live_start(); live_run(); }
void mos6530_base_t::device_reset() { m_pa_out = 0; m_pa_ddr = 0; m_pb_out = 0; m_pb_ddr = 0; m_ie_timer = false; m_irq_timer = false; m_ie_edge = false; m_irq_edge = false; m_pa7_dir = 0; update_pa(); update_pb(); update_irq(); edge_detect(); m_timer = 0xff; m_prescale = 1024; if (cur_live.state != IDLE) { live_abort(); } live_start(); live_run(); }
inline void mos6526_device::set_crb(UINT8 data) { if (!CRB_STARTED && (data & CRB_START)) { m_tb_pb7 = 1; } m_crb = data; update_pb(); }
inline void mos6526_device::set_cra(UINT8 data) { if (!CRA_STARTED && (data & CRA_START)) { m_ta_pb6 = 1; } m_cra = data; update_pb(); }
inline void mos6526_device::set_cra(uint8_t data) { if (!CRA_STARTED && (data & CRA_START)) { m_ta_pb6 = 1; } // switching to serial output mode causes sp to go high? if (!CRA_SPMODE && BIT(data, 6)) { m_bits = 0; m_write_sp(1); } // lower sp again when switching back to input? if (CRA_SPMODE && !BIT(data, 6)) { m_bits = 0; m_write_sp(0); } m_cra = data; update_pb(); }
void mos6530_t::update_irq() { update_pb(); }