cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 9740|回复: 12

[fx-9860/9750系列] [SDK]新fx-9860(sh-4)的SDK

[复制链接]
发表于 2013-1-30 23:27:03 | 显示全部楼层 |阅读模式
计算器程序
程序名称: fx-9860G Software Development Kit (sh-4)
平台: fx-9860GII fx-9860G & Slim fx-9750GII 其他 
系统/软件要求: Windows
版本号: 1.140200
类型: 其他 
作者: CASIO
大小(K): 00
更新日期: 2013-01-30
描述: 新9860的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的函数
  1. #define GETCODE(c1,c2) (gcode1=(c1),gcode2=(c2))

  2. int Bkey_n_IsKeyDown(int keycode)
  3. {
  4.         int kcode1 = 0, kcode2 = 0;
  5.         int        gcode1,gcode2;
  6.         short unused = 0;

  7.         switch(keycode)
  8.         {
  9.                 case KEY_CHAR_0                        :GETCODE(7,2);break;
  10.                 case KEY_CHAR_1                        :GETCODE(7,3);break;
  11.                 case KEY_CHAR_2                        :GETCODE(6,3);break;
  12.                 case KEY_CHAR_3                        :GETCODE(5,3);break;
  13.                 case KEY_CHAR_4                        :GETCODE(7,4);break;
  14.                 case KEY_CHAR_5                        :GETCODE(6,4);break;
  15.                 case KEY_CHAR_6                        :GETCODE(5,4);break;
  16.                 case KEY_CHAR_7                        :GETCODE(7,5);break;
  17.                 case KEY_CHAR_8                        :GETCODE(6,5);break;
  18.                 case KEY_CHAR_9                        :GETCODE(5,5);break;
  19.                 case KEY_CHAR_DP                :GETCODE(6,2);break;
  20.                 case KEY_CHAR_EXP                :GETCODE(5,2);break;
  21.                 case KEY_CHAR_PMINUS        :GETCODE(4,2);break;
  22.                 case KEY_CHAR_PLUS                :GETCODE(4,3);break;
  23.                 case KEY_CHAR_MINUS                :GETCODE(3,3);break;
  24.                 case KEY_CHAR_MULT                :GETCODE(4,4);break;
  25.                 case KEY_CHAR_DIV                :GETCODE(3,4);break;
  26.                 case KEY_CTRL_EXE                :GETCODE(3,2);break;
  27.                 case KEY_CTRL_DEL                :GETCODE(4,5);break;
  28.                 case KEY_CTRL_AC                :GETCODE(1,1);break;
  29.                 case KEY_CHAR_FRAC                 :GETCODE(7,6);break;
  30.                 case KEY_CTRL_FD                 :GETCODE(6,6);break;
  31.                 case KEY_CHAR_LPAR                 :GETCODE(5,6);break;
  32.                 case KEY_CHAR_RPAR                 :GETCODE(4,6);break;
  33.                 case KEY_CHAR_COMMA          :GETCODE(3,6);break;
  34.                 case KEY_CHAR_STORE         :GETCODE(2,6);break;
  35.                 case KEY_CTRL_XTT                 :GETCODE(7,7);break;
  36.                 case KEY_CHAR_LOG                 :GETCODE(6,7);break;
  37.                 case KEY_CHAR_LN                 :GETCODE(5,7);break;
  38.                 case KEY_CHAR_SIN                 :GETCODE(4,7);break;
  39.                 case KEY_CHAR_COS                 :GETCODE(3,7);break;
  40.                 case KEY_CHAR_TAN                  :GETCODE(2,7);break;
  41.                 case KEY_CHAR_SQUARE         :GETCODE(6,8);break;
  42.                 case KEY_CHAR_POW                 :GETCODE(5,8);break;
  43.                 case KEY_CTRL_EXIT          :GETCODE(4,8);break;
  44.                 case KEY_CTRL_SHIFT                :GETCODE(7,9);break;
  45.                 case KEY_CTRL_ALPHA                :GETCODE(7,8);break;
  46.                 case KEY_CTRL_OPTN                 :GETCODE(6,9);break;
  47.                 case KEY_CTRL_VARS                 :GETCODE(5,9);break;
  48.                 case KEY_CTRL_MENU                 :GETCODE(4,9);break;
  49.                 case KEY_CTRL_UP                 :GETCODE(2,9);break;
  50.                 case KEY_CTRL_DOWN          :GETCODE(3,8);break;
  51.                 case KEY_CTRL_LEFT                 :GETCODE(3,9);break;
  52.                 case KEY_CTRL_RIGHT          :GETCODE(2,8);break;
  53.                 case KEY_CTRL_F1                  :GETCODE(7,10);break;
  54.                 case KEY_CTRL_F2                  :GETCODE(6,10);break;
  55.                 case KEY_CTRL_F3                  :GETCODE(5,10);break;
  56.                 case KEY_CTRL_F4                  :GETCODE(4,10);break;
  57.                 case KEY_CTRL_F5                  :GETCODE(3,10);break;
  58.                 case KEY_CTRL_F6                  :GETCODE(2,10);break;

  59.                 default:return 0;
  60.         }



  61.         if (Bkey_GetKeyWait(&kcode1, &kcode2, KEYWAIT_HALTOFF_TIMEROFF,0,0, &unused)==KEYREP_KEYEVENT)
  62.         {
  63.                 if ((kcode1==gcode1)&&(kcode2==gcode2))
  64.                         return 1;
  65.         }
  66.         return 0;
  67. }
复制代码
发表于 2013-1-31 18:01:25 | 显示全部楼层
大家赶快移植,,用新函数代替iskeydown啊。。。
 楼主| 发表于 2013-1-31 19:16:11 | 显示全部楼层
经实测使用Bkey_GetKeyWait的程序似乎有些变慢

1L给出的例子仅供懒人使用...为了效率大家还是手动把旧的IsKeyDown里面的Keycode换成新的映射代码吧
发表于 2013-1-31 19:17:06 | 显示全部楼层
刚试了一下,syscall可用
发表于 2013-2-1 16:24:25 | 显示全部楼层
楼主辛苦了,高手
发表于 2013-2-1 17:15:54 | 显示全部楼层
新版的计算器终于有救了,{:080:}
发表于 2013-2-1 19:24:23 | 显示全部楼层
感谢分享,虽然说我很少用98了……
发表于 2013-8-27 22:19:00 | 显示全部楼层
太棒了!
发表于 2014-12-3 16:29:37 | 显示全部楼层
表示真的看不懂
发表于 2016-8-8 22:42:44 | 显示全部楼层
链接坏了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-24 05:10 , Processed in 0.060284 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表