diameter 发表于 2013-1-30 23:27:03

[SDK]新fx-9860(sh-4)的SDK

本帖最后由 diameter 于 2013-1-31 19:14 编辑

新版本的fx-9860G SDK,增加了Bkey_GetKeyWait函数的支持,可以用于替代已经被舍弃的IsKeyDown函数
经过实测含有IsKeyDown函数的程序依然可以正常编译

我尝试重新编译了两个程序,测试反馈贴在此:http://www.cncalc.org/thread-8382-1-1.html
(已经有有新9860的朋友测试可用)

网盘:http://dl.vmall.com/c0bdf47ya9

下面给出一个用新函数实现的用于代替IsKeyDown的函数#define GETCODE(c1,c2) (gcode1=(c1),gcode2=(c2))

int Bkey_n_IsKeyDown(int keycode)
{
        int kcode1 = 0, kcode2 = 0;
        int        gcode1,gcode2;
        short unused = 0;

        switch(keycode)
        {
                case KEY_CHAR_0                        :GETCODE(7,2);break;
                case KEY_CHAR_1                        :GETCODE(7,3);break;
                case KEY_CHAR_2                        :GETCODE(6,3);break;
                case KEY_CHAR_3                        :GETCODE(5,3);break;
                case KEY_CHAR_4                        :GETCODE(7,4);break;
                case KEY_CHAR_5                        :GETCODE(6,4);break;
                case KEY_CHAR_6                        :GETCODE(5,4);break;
                case KEY_CHAR_7                        :GETCODE(7,5);break;
                case KEY_CHAR_8                        :GETCODE(6,5);break;
                case KEY_CHAR_9                        :GETCODE(5,5);break;
                case KEY_CHAR_DP                :GETCODE(6,2);break;
                case KEY_CHAR_EXP                :GETCODE(5,2);break;
                case KEY_CHAR_PMINUS        :GETCODE(4,2);break;
                case KEY_CHAR_PLUS                :GETCODE(4,3);break;
                case KEY_CHAR_MINUS                :GETCODE(3,3);break;
                case KEY_CHAR_MULT                :GETCODE(4,4);break;
                case KEY_CHAR_DIV                :GETCODE(3,4);break;
                case KEY_CTRL_EXE                :GETCODE(3,2);break;
                case KEY_CTRL_DEL                :GETCODE(4,5);break;
                case KEY_CTRL_AC                :GETCODE(1,1);break;
                case KEY_CHAR_FRAC                 :GETCODE(7,6);break;
                case KEY_CTRL_FD                 :GETCODE(6,6);break;
                case KEY_CHAR_LPAR                 :GETCODE(5,6);break;
                case KEY_CHAR_RPAR                 :GETCODE(4,6);break;
                case KEY_CHAR_COMMA        :GETCODE(3,6);break;
                case KEY_CHAR_STORE         :GETCODE(2,6);break;
                case KEY_CTRL_XTT                 :GETCODE(7,7);break;
                case KEY_CHAR_LOG                 :GETCODE(6,7);break;
                case KEY_CHAR_LN                 :GETCODE(5,7);break;
                case KEY_CHAR_SIN                 :GETCODE(4,7);break;
                case KEY_CHAR_COS                 :GETCODE(3,7);break;
                case KEY_CHAR_TAN                :GETCODE(2,7);break;
                case KEY_CHAR_SQUARE         :GETCODE(6,8);break;
                case KEY_CHAR_POW                 :GETCODE(5,8);break;
                case KEY_CTRL_EXIT        :GETCODE(4,8);break;
                case KEY_CTRL_SHIFT                :GETCODE(7,9);break;
                case KEY_CTRL_ALPHA                :GETCODE(7,8);break;
                case KEY_CTRL_OPTN                 :GETCODE(6,9);break;
                case KEY_CTRL_VARS                 :GETCODE(5,9);break;
                case KEY_CTRL_MENU                 :GETCODE(4,9);break;
                case KEY_CTRL_UP                 :GETCODE(2,9);break;
                case KEY_CTRL_DOWN        :GETCODE(3,8);break;
                case KEY_CTRL_LEFT                 :GETCODE(3,9);break;
                case KEY_CTRL_RIGHT        :GETCODE(2,8);break;
                case KEY_CTRL_F1                :GETCODE(7,10);break;
                case KEY_CTRL_F2                :GETCODE(6,10);break;
                case KEY_CTRL_F3                :GETCODE(5,10);break;
                case KEY_CTRL_F4                :GETCODE(4,10);break;
                case KEY_CTRL_F5                :GETCODE(3,10);break;
                case KEY_CTRL_F6                :GETCODE(2,10);break;

                default:return 0;
        }



        if (Bkey_GetKeyWait(&kcode1, &kcode2, KEYWAIT_HALTOFF_TIMEROFF,0,0, &unused)==KEYREP_KEYEVENT)
        {
                if ((kcode1==gcode1)&&(kcode2==gcode2))
                        return 1;
        }
        return 0;
}

.zyz 发表于 2013-1-31 18:01:25

大家赶快移植,,用新函数代替iskeydown啊。。。

diameter 发表于 2013-1-31 19:16:11

经实测使用Bkey_GetKeyWait的程序似乎有些变慢

1L给出的例子仅供懒人使用...为了效率大家还是手动把旧的IsKeyDown里面的Keycode换成新的映射代码吧

JZCW 发表于 2013-1-31 19:17:06

刚试了一下,syscall可用

balakeyang 发表于 2013-2-1 16:24:25

楼主辛苦了,高手

croptree 发表于 2013-2-1 17:15:54

新版的计算器终于有救了,{:080:}

wtof1996 发表于 2013-2-1 19:24:23

感谢分享,虽然说我很少用98了……

晓零辛纳 发表于 2013-8-27 22:19:00

太棒了!

5tuaner 发表于 2014-12-3 16:29:37

表示真的看不懂

hagb 发表于 2016-8-8 22:42:44

链接坏了
页: [1]
查看完整版本: [SDK]新fx-9860(sh-4)的SDK