예제 #1
0
        public override byte tick(byte scancode)
        {
            LCD_Manager    lm = _parent._m_Hardware_LCD;
            Program_Memory pm = _parent._m_Program_Memory;

            lm.updateStatusPC(pm.getCounter());
            lm.updateStatusMC(_parent._m_Extended_Memory.getCounter());
            lm.updateStatusDMODE(pm.getEModeName());
            int display_PC = (int)pm.getCounter();

            string[] _displayLines = pm.getPreviousLines(LCD_Manager.SCREEN_ROWS - 1);
            for (int i = 10, j = 0, k = display_PC; i >= 0; i--, j++, k--)
            {
                if (k < 0)
                {
                    lm.eraseTerminalLine((uint)i);
                    continue;
                }
                string s = k.ToString("0000");
                s += (k == display_PC) ? "> " : "  ";
                lm.updateTerminalLine((uint)i, s + _displayLines[j]);
            }
            lm.requestUpdate();
            return(0);
        }
예제 #2
0
        public override byte tick(byte scancode)
        {
            LCD_Manager lm = _parent.getLCD();
            RPN_Stack   st = _parent._m_RPN_Stack;

            lm.updateStatusPC(_parent._m_Program_Memory.getCounter());
            lm.updateStatusMC(_parent._m_Extended_Memory.getCounter());
            lm.updateStatusDMODE(st.getDModeName());
            lm.updateCalcRegister(0, st.X.toString());
            lm.updateCalcLabel(0, st.X_Label);
            lm.updateCalcRegister(1, st.Y.toString());
            lm.updateCalcLabel(1, st.Y_Label);
            lm.updateCalcRegister(2, st.Z.toString());
            lm.updateCalcLabel(2, st.Z_Label);
            lm.updateCalcRegister(3, st.T.toString());
            lm.updateCalcLabel(3, st.T_Label);
            lm.requestUpdate();
            return(0);
        }