网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月16日漏签0天
fx-es(ms)吧 关注:17,389贴子:311,552
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 10回复贴,共1页
<<返回fx-es(ms)吧
>0< 加载中...

991CNX(VerC)的按键内码

  • 只看楼主
  • 收藏

  • 回复
  • EwTE_H
  • 991CNX
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
991cnx有矩阵键盘码、按键内码、一级字符表三套码
按键内码有些键和一级字符表的对应字符相同(比如按键1的内码是00 31,字符1在一级字符表上是31)还有一些是不同的(比如按键SHIFT的内码是FC 29,但SHIFT没有对应的字符)在rom里,从0:62E2开始有一个按键内码表,目测是按照矩阵键盘码的顺序排的。表上还有一些东西不知道对应什么键(比如0:6308处的FC 3E)
我在分析函数1:F230时(这个函数会等待按下SHIFT然后返回,按其他键没有反应),发现两个似乎可以用来检测按键的函数。1:F230的代码大意如下:
er14 = sp;
sp -= 2;
do {
0:F746( er0 = er14 - 2 );
2:52DC( er0 = er14 - 2, er2 = 0x62E2 );
} while ( er0 != 0xFC29 );
0:F746的代码很长,我暂时没分析出来,可能是用来读键盘的,但是2:52DC我大致看懂了,代码大意如下:
a = er0; b = er2;
r2 = a[0]; r3 = a[1];
if ( r2 == 0 || r3 == 0 ) {
er0 = 0;
return;
}
r0 = (r2的位数-1)<<3 + (r3的位数-1); //01100000有7位,以此类推
er0 = b + r0 + r0;
er0 = *er0;
这个函数似乎是用来把矩阵键盘码转化成按键内码的。SHIFT对应的0xFC29出现在0:6352,也就是0:62E2 + 0x70,反推得到r0为00111000,那么r2有8位,r3有1位。同时,自检界面里发现SHIFT是KI8 KO1,因此我推测r2 r3分别对应KI和KO。如果我的猜想正确,那么函数0:F746就会读取物理键盘并把读到的值放在er0[0]和er0[1]里,然后调用2:52DC,就能把矩阵键盘码翻译成按键内码并放入er0,这样就达到了按键检测的目的。
现在,矩阵键盘码和按键内码的关系已经清楚了,很容易得到开头提到的FC3E对应KI3 KO4。但我不知道物理键盘和矩阵键盘码的关系。请问吧友们有没有物理键盘和矩阵键盘码的对应表?


  • 喜羊羊第x代
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你说这个吗


2025-07-16 13:50:47
广告
  • EwTE_H
  • 991CNX
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
OK,那么所有00开头的按键内码都和一级字符表对上了

这个是FC开头的按键内码和按键的对应表


  • pyridinephenol
  • TI-84+CE
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不错以前玩CE也注意过这个,还为设置区不同位置的值的含义整理了一张表格,可惜没做完


  • EwTE_H
  • 991CNX
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
alpha
sto

基数模式shift

shift


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 10回复贴,共1页
<<返回fx-es(ms)吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示