protected override void completeEntry(string value)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            if (value.Length == 0)
            {
                _rpnf.execute(RPN_Functions.FUNC_A_M2X);
                _rpnf.extMem.decrementCounter();
            }
            else
            {
                _rpnf.execute(RPN_Functions.FUNC_A_M2X, value);
            }
        }
예제 #2
0
        protected override void completeEntry(string value)
        {
            RPN_Functions _rpnf   = _parent.getFunctions();
            string        tmpName = _rpnf.formFileName(value);

            _rpnf.execute(RPN_Functions.FUNC_MKDIR, value);
            _parent.getFunctions().requestNextReceiver(_return_to);
            return;
        }
예제 #3
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("FILE_FK"));

            case 3:
                return(_rpnf.requestNextReceiver("FILE_A"));

            // Column 1 does nothing (for now)

            // Column 2
            case 9:
                _rpnf.execute(RPN_Functions.FUNC_LOADALL);
                return(_rpnf.requestNextReceiver("AUTO_N"));

            case 10:
                return(_rpnf.requestNextReceiver("File_Overwrite_All"));

            case 12:
                return(_rpnf.requestNextReceiver("File_All"));

            // Column 3 does nothing (for now)
            // Column 4 does nothing (for now)
            // Column 5 does nothing (for now)
            // Column 6 does nothing (for now)

            // Column 7
            case 32:
                return(_rpnf.requestNextReceiver("Prog_Erase", "PROG_N"));

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("FILE_N");
                return(33);

            default:     // all other buttons do nothing, keeping K-mode
                return(0);
            }
            //return _rpnf.requestNextReceiver("FILE_N");
        }
예제 #4
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 2:
                return(_rpnf.requestNextReceiver("AUTO_K"));

            case 3:
                return(_rpnf.requestNextReceiver("AUTO_FA"));

            case 4:
                _parent._m_RPN_Stack.toggleAngleMode();
                return(base.tick(0));

            // Column 6
            case 27:
                _rpnf.execute(RPN_Functions.FUNC_POWYX);
                break;

            // Column 7
            case 32:
                // Clear FK mode
                break;

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("AUTO_N");
                return(33);

            default:     // all other buttons do nothing, keeping FK-mode
                return(0);
            }
            return(_rpnf.requestNextReceiver("AUTO_N"));
        }
예제 #5
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("FILE_F"));

            case 2:
                return(_rpnf.requestNextReceiver("FILE_K"));

            case 3:
                return(_rpnf.requestNextReceiver("FILE_A"));

            // Column 1
            case 5:
                _parent.getSD().nextListingPosition();
                break;

            case 6:
                _parent.getSD().previousListingPosition();
                break;

            case 7:
                _parent.getSD().upFolder();
                break;

            case 8:
                _rpnf.stepIn();
                break;

            // Column 2
            case 9:
                _rpnf.execute(RPN_Functions.FUNC_LOAD);
                return(_rpnf.requestNextReceiver("PROG_N"));

            case 10:
                return(_rpnf.requestNextReceiver("File_Overwrite"));

            case 11:
                // find program TODO
                break;

            case 12:
                return(_rpnf.requestNextReceiver("File_Name"));

            // Column 3-5 - do nothing (for now)

            // Column 6
            case 28:
                return(_rpnf.requestNextReceiver("File_MkDir"));

            // Column 7
            case 31:
                _rpnf.stepIn();
                break;

            case 32:
                return(_rpnf.requestNextReceiver("File_Delete"));

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("OFF");
                return(33);

            default:     // all other buttons do nothing (for now)
                return(0);
            }
            return(base.tick(0));
        }
예제 #6
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("DATA_F"));

            case 2:
                return(_rpnf.requestNextReceiver("DATA_K"));

            case 3:
                return(_rpnf.requestNextReceiver("DATA_A"));

            case 4:
                // TODO: Insert mode
                //_parent._m_RPN_Stack.toggleAngleMode();
                // base.tick(0);
                return(0);

            // Column 1
            case 5:
                _rpnf.extMem.incrementCounter();
                break;

            case 6:
                _rpnf.extMem.decrementCounter();
                break;

            case 7:
                _rpnf.extMem.resetCounter();
                break;

            case 8:
                _rpnf.execute(RPN_Functions.FUNC_MEXTOX);
                _rpnf.extMem.incrementCounter();
                break;

            // Column 2
            case 9:
                // TODO
                return(_rpnf.requestNextReceiver("REGISTER_ME"));

            case 10:
                // TODO
                return(_rpnf.requestNextReceiver("REGISTER_EM"));

            case 11:
                return(_rpnf.requestNextReceiver("ADDRESS_MC", "DATA_N"));

            case 12:
                _rpnf.execute(RPN_Functions.FUNC_XTOMEX);
                _rpnf.extMem.incrementCounter();
                break;

            // Column 3-5 - number entry

            // Column 6
            case 25:
            case 26:
                break;

            case 27:
                _rpnf.execute(RPN_Functions.FUNC_MEMSWP);
                _rpnf.extMem.incrementCounter();
                break;

            // Column 7
            case 29:
            case 30:
                break;

            case 31:
                _rpnf.execute(RPN_Functions.FUNC_MEMSET,
                              _parent._m_RPN_Stack._DataEntry.ToString().Trim());
                _rpnf.extMem.incrementCounter();
                break;

            case 32:
                _parent._m_Extended_Memory.clearCurrent();
                _rpnf.extMem.incrementCounter();
                break;

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("OFF");
                return(33);

            default:     // all other buttons activate number entry
                _rpnf.requestNextReceiver("NUMBER_DATA");
                return(scancode);
            }
            return(base.tick(0));
        }
예제 #7
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("AUTO_FA"));

            case 2:
                return(_rpnf.requestNextReceiver("AUTO_K"));

            case 4:
                _parent._m_RPN_Stack.toggleAngleMode();
                return(base.tick(0));

            // Column 1
            case 5:
                _rpnf.extMem.incrementCounter();
                break;

            case 6:
                _rpnf.extMem.decrementCounter();
                break;

            case 7:
                _rpnf.extMem.resetCounter();
                break;

            case 8:
                return(0);

            // Column 2
            case 9:
                return(_rpnf.requestNextReceiver("ADDRESS_AMX"));

            case 10:
                return(_rpnf.requestNextReceiver("ADDRESS_AXM"));

            case 11:
                return(_rpnf.requestNextReceiver("ADDRESS_MC", "AUTO_N"));

            case 12:
                _rpnf.execute(RPN_Functions.FUNC_A_M2X);
                _rpnf.extMem.incrementCounter();
                break;

            // Column 3 does nothing
            // Column 4 does nothing

            // Column 5
            case 22:
                _rpnf.execute(RPN_Functions.FUNC_D2RAD);
                break;

            case 23:
                _rpnf.execute(RPN_Functions.FUNC_MM2IN);
                break;

            case 24:
                return(_rpnf.requestNextReceiver("FILE_N"));

            // Column 6
            case 25:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "A-SQRT is available!");
                break;

            case 26:
                _rpnf.execute(RPN_Functions.FUNC_RAD2D);
                break;

            case 27:
                _rpnf.execute(RPN_Functions.FUNC_IN2MM);
                break;

            case 28:
                return(_rpnf.requestNextReceiver("DATA_N"));

            // Column 7
            case 29:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "A-1/X is available!");
                break;

            case 30:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "A-X2 is available!");
                break;

            case 31:
                _rpnf.execute(RPN_Functions.FUNC_SEED);
                break;

            case 32:
            case 33:
                _rpnf.requestNextReceiver("AUTO_N");
                return(33);

            default:     // all other buttons do nothing, keeping A-mode
                return(0);
            }
            return(_rpnf.requestNextReceiver("AUTO_N"));
        }
예제 #8
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(base.tick(0));

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("AUTO_F"));

            case 2:
                return(_rpnf.requestNextReceiver("AUTO_K"));

            case 3:
                return(_rpnf.requestNextReceiver("AUTO_A"));

            case 4:
                _parent._m_RPN_Stack.toggleAngleMode();
                break;

            // Column 1
            case 5:
                _rpnf.progMem.incrementCounter();
                break;

            case 6:
                _rpnf.progMem.decrementCounter();
                break;

            case 7:
                _rpnf.progMem.resetCounter();
                break;

            case 8:
                return(_rpnf.requestNextReceiver("AUTO_R"));

            // Column 2
            case 9:
                return(_rpnf.requestNextReceiver("REGISTER_MX"));

            case 10:
                return(_rpnf.requestNextReceiver("REGISTER_XM"));

            case 11:
                return(_rpnf.requestNextReceiver("ADDRESS_PC"));

            case 12:
                _rpnf.executeStep();
                break;

            // Column 5
            case 24:
                _rpnf.execute(RPN_Functions.FUNC_NEGATE);
                break;

            // Column 6
            case 25:
                _rpnf.execute(RPN_Functions.FUNC_MINUS);
                break;

            case 26:
                _rpnf.execute(RPN_Functions.FUNC_PLUS);
                break;

            case 27:
                _rpnf.execute(RPN_Functions.FUNC_SWAP);
                break;

            // Column 7
            case 29:
                _rpnf.execute(RPN_Functions.FUNC_DIVIDE);
                break;

            case 30:
                _rpnf.execute(RPN_Functions.FUNC_MULTIPLY);
                break;

            case 31:
                _rpnf.execute(RPN_Functions.FUNC_ENTER);
                break;

            case 32:
                if (_parent._m_RPN_Stack.customLabels())
                {
                    _parent._m_RPN_Stack.resetLabels();
                }
                else
                {
                    _rpnf.execute(RPN_Functions.FUNC_CLEAR_X);
                }
                break;

            case 33:
                return(_rpnf.requestNextReceiver("OFF"));

            default:          // all other buttons activate number entry
                _rpnf.execute(RPN_Functions.FUNC_ENTER);
                base.tick(0); // redraw stack movement
                _rpnf.requestNextReceiver("NUMBER");
                return(scancode);
            }
            return(base.tick(0));
        }
예제 #9
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 2:
                return(_rpnf.requestNextReceiver("AUTO_FK"));

            case 3:
                return(_rpnf.requestNextReceiver("AUTO_FA"));

            case 4:
                _parent._m_RPN_Stack.toggleAngleMode();
                return(base.tick(0));

            // Column 1 does nothing (for now)
            case 5:
            case 6:
            case 7:
            case 8:

            // Column 2 does nothing (for now)
            case 9:
            case 10:
            case 11:
            case 12:
                return(0);

            // Column 3
            case 13:
                _rpnf.execute(RPN_Functions.FUNC_SIN);
                break;

            case 14:
                _rpnf.execute(RPN_Functions.FUNC_ARCSIN);
                break;

            case 15:
                _rpnf.execute(RPN_Functions.FUNC_EXP);
                break;

            case 16:
                _rpnf.execute(RPN_Functions.FUNC_10X);
                break;

            // Column 4
            case 17:
                _rpnf.execute(RPN_Functions.FUNC_COS);
                break;

            case 18:
                _rpnf.execute(RPN_Functions.FUNC_ARCCOS);
                break;

            case 19:
                _rpnf.execute(RPN_Functions.FUNC_LG);
                break;

            case 20:
                _rpnf.execute(RPN_Functions.FUNC_ROT);
                break;

            // Column 5
            case 21:
                _rpnf.execute(RPN_Functions.FUNC_TG);
                break;

            case 22:
                _rpnf.execute(RPN_Functions.FUNC_ARCTG);
                break;

            case 23:
                _rpnf.execute(RPN_Functions.FUNC_LN);
                break;

            case 24:
                // AUTO is already on
                break;

            // Column 6
            case 25:
                _rpnf.execute(RPN_Functions.FUNC_SQRT);
                break;

            case 26:
                _rpnf.execute(RPN_Functions.FUNC_PI);
                break;

            case 27:
                _rpnf.execute(RPN_Functions.FUNC_POW);
                break;

            case 28:
                return(_rpnf.requestNextReceiver("PROG_N"));

            // Column 7
            case 29:
                _rpnf.execute(RPN_Functions.FUNC_1X);
                break;

            case 30:
                _rpnf.execute(RPN_Functions.FUNC_X2);
                break;

            case 31:
                _rpnf.execute(RPN_Functions.FUNC_BX);
                break;

            case 32:
                // Clear F mode
                break;

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("AUTO_N");
                return(33);

            default:     // all other buttons do nothing, keeping F-mode
                return(0);
            }
            return(_rpnf.requestNextReceiver("AUTO_N"));
        }
예제 #10
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 2:
                return(_rpnf.requestNextReceiver("FILE_K"));

            case 3:
                return(_rpnf.requestNextReceiver("FILE_A"));

            // Column 1
            case 5:
                for (int i = 0; i < 9; i++)
                {
                    _parent.getSD().nextListingPosition();
                }
                break;

            case 6:
                for (int i = 0; i < 9; i++)
                {
                    _parent.getSD().previousListingPosition();
                }
                break;

            // Column 2
            case 9:
                _rpnf.execute(RPN_Functions.FUNC_LOADDATA);
                return(_rpnf.requestNextReceiver("DATA_N"));

            case 10:
                return(_rpnf.requestNextReceiver("File_Overwrite_Data"));

            case 12:
                return(_rpnf.requestNextReceiver("File_Data"));

            // Column 3 does nothing (for now)
            // Column 4 does nothing (for now)

            // Column 5
            case 24:
                return(_rpnf.requestNextReceiver("AUTO_N"));

            // Column 6
            case 28:
                return(_rpnf.requestNextReceiver("PROG_N"));

            // Column 7
            case 32:
                // Clear F mode
                break;

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("FILE_N");
                return(33);

            default:     // all other buttons do nothing, keeping F-mode
                return(0);
            }
            return(_rpnf.requestNextReceiver("FILE_N"));
        }
예제 #11
0
        public override byte tick(byte scancode)
        {
            RPN_Functions _rpnf = _parent.getFunctions();

            switch (scancode)
            {
            case 0:     // keyboard inactive
                return(0);

            // Column 0
            case 1:
                return(_rpnf.requestNextReceiver("AUTO_FK"));

            case 3:
                return(_rpnf.requestNextReceiver("AUTO_A"));

            case 4:
                _parent._m_RPN_Stack.toggleAngleMode();
                return(base.tick(0));

            // Column 1 does nothing (for now)
            case 5:
            case 6:
            case 7:
            case 8:
                return(0);

            // Column 2
            case 9:
                return(_rpnf.requestNextReceiver("REGISTER_KMX"));

            case 10:
                return(_rpnf.requestNextReceiver("REGISTER_KXM"));

            case 11:
                _parent._m_RPN_Stack.setLabel_P(0, "K-GOTO is bad for you!");
                break;

            case 12:
                _parent._m_RPN_Stack.setLabel_P(0, "K-GOSUB is bad for you!");
                break;

            // Column 3
            case 13:
                _rpnf.execute(RPN_Functions.FUNC_WHOLE);
                break;

            case 14:
                _rpnf.execute(RPN_Functions.FUNC_ABS);
                break;

            case 15:
                _rpnf.execute(RPN_Functions.FUNC_EE);
                break;

            case 16:
                // NOP
                break;

            // Column 4
            case 17:
                _rpnf.execute(RPN_Functions.FUNC_FRAC);
                break;

            case 18:
                _rpnf.execute(RPN_Functions.FUNC_SIGN);
                break;

            case 19:
                _rpnf.execute(RPN_Functions.FUNC_LOG);
                break;

            case 20:
                _rpnf.execute(RPN_Functions.FUNC_AND);
                break;

            // Column 5
            case 21:
                _rpnf.execute(RPN_Functions.FUNC_MAX);
                break;

            case 22:
                _rpnf.execute(RPN_Functions.FUNC_DM2D);
                break;

            case 23:
                _rpnf.execute(RPN_Functions.FUNC_DMS2D);
                break;

            case 24:
                _rpnf.execute(RPN_Functions.FUNC_OR);
                break;

            // Column 6
            case 25:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "K-SQRT is available!");
                break;

            case 26:
                _rpnf.execute(RPN_Functions.FUNC_D2DM);
                break;

            case 27:
                _rpnf.execute(RPN_Functions.FUNC_D2DMS);
                break;

            case 28:
                _rpnf.execute(RPN_Functions.FUNC_XOR);
                break;

            // Column 7
            case 29:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "K-1/X is available!");
                break;

            case 30:
                // TODO
                _parent._m_RPN_Stack.setLabel_P(0, "K-X2 is available!");
                break;

            case 31:
                _rpnf.execute(RPN_Functions.FUNC_RAND);
                break;

            case 32:
                _rpnf.execute(RPN_Functions.FUNC_NOT);
                break;

            case 33:
                // Shutdown signal
                _rpnf.requestNextReceiver("AUTO_N");
                return(33);

            default:     // all other buttons do nothing, keeping K-mode
                return(0);
            }
            return(_rpnf.requestNextReceiver("AUTO_N"));
        }