Exemple #1
0
        protected virtual void set_rmcr(uint8_t data)
        {
            if (m_rmcr == data)
            {
                return;
            }

            m_rmcr = data;

            switch ((m_rmcr & M6801_RMCR_CC_MASK) >> 2)
            {
            case 0:
                LOGSER("SCI: Using external serial clock: false\n");
                m_sci_timer.enable(false);
                m_use_ext_serclock = false;
                break;

            case 3: // external clock
                LOGSER("SCI: Using external serial clock: true\n");
                m_use_ext_serclock = true;
                m_sci_timer.enable(false);
                break;

            case 1:
            case 2:
            {
                int      divisor = M6801_RMCR_SS[m_rmcr & M6801_RMCR_SS_MASK];
                attotime period  = cycles_to_attotime((uint64_t)divisor);
                LOGSER("SCI: Setting serial rate, Divisor: {0} Hz: {1}\n", divisor, period.as_hz());
                m_sci_timer.adjust(period, 0, period);
                m_use_ext_serclock = false;
            }
            break;
            }
        }
Exemple #2
0
        void set_rmcr(uint8_t data)
        {
            if (m_rmcr == data)
            {
                return;
            }

            m_rmcr = data;

            switch ((m_rmcr & M6801_RMCR_CC_MASK) >> 2)
            {
            case 0:
                m_sci_timer.enable(false);
                m_use_ext_serclock = false;
                break;

            case 3: // external clock
                m_use_ext_serclock = true;
                m_sci_timer.enable(false);
                break;

            case 1:
            case 2:
            {
                int      divisor = M6801_RMCR_SS[m_rmcr & M6801_RMCR_SS_MASK];
                attotime period  = cycles_to_attotime((u64)divisor);

                m_sci_timer.adjust(period, 0, period);
                m_use_ext_serclock = false;
            }
            break;
            }
        }