private void silence()
 {
     sample = 0;
     m_context.cancel(sampleEvent);
     m_context.cancel(galwayEvent);
     m_context.schedule(m_xsid.xsidEvent, 0, m_phase);
 }
        // Component Standard Calls

        public virtual void reset()
        {
            ta           = ta_latch = 0xffff;
            tb           = tb_latch = 0xffff;
            ta_underflow = tb_underflow = false;
            cra          = crb = sdr_out = 0;
            sdr_count    = 0;
            sdr_buffered = false;
            // Clear off any IRQs
            trigger(0);
            cnt_high    = true;
            icr         = idr = 0;
            m_accessClk = 0;
            dpa         = 0xf0;
            for (int i = 0; i < regs.Length; i++)
            {
                regs[i] = 0;
            }

            // Reset tod
            for (int i = 0; i < m_todclock.Length; i++)
            {
                m_todclock[i] = 0;
            }
            for (int i = 0; i < m_todalarm.Length; i++)
            {
                m_todalarm[i] = 0;
            }
            for (int i = 0; i < m_todlatch.Length; i++)
            {
                m_todlatch[i] = 0;
            }

            m_todlatched = false;
            m_todstopped = true;
            m_todclock[TOD_HR - TOD_TEN] = 1; // the most common value
            m_todCycles = 0;

            // Remove outstanding events
            event_context.cancel(event_ta);
            event_context.cancel(event_tb);
            event_context.schedule(event_tod, 0, m_phase);
        }
        public void reset(bool seed)
        {
            locked = false;
            ta     = ta_latch = m_count;
            cra    = 0;
            // Initialise random number generator
            if (seed)
            {
                rnd = 0;
            }
            else
            {
#if DEBUG
                rnd = 1;
#else
                rnd += DateTime.Now.Millisecond & 0xff;
#endif
            }
            m_accessClk = 0;
            // Remove outstanding events
            m_eventContext.cancel(m_taEvent);
        }