中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 在DOS下如何用C实现键盘某键的按下
« [1] [2] »
作者:
标题: 在DOS下如何用C实现键盘某键的按下 上一主题 | 下一主题
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 16 楼』:  

dear zly910:
     你好!
     感谢你提供的宝贵资料!
     我有将你这段代码进行编译和运行,可以抓到那几个键而且有相应的响应,因本人知识的贫乏对中断还不是很懂,所以有几个问题还要请教下
http://www.computer-engineering.org/ps2keyboard/scancodes1.html
你应该有看过,对于一般的按键makecode和breakcode都只有1个字节,读出来的值是正常的,但是有很多有2个字节的,比如说播放键是EO,22和E0,2A,但是这里只能抓出2个E0来,也就是说只能取出他们的前面一个字节,是否可以改成抓出2个字节的,因为我不知道你用中断是如何实现的,还请你指点一下.

2006-12-27 03:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 17 楼』:  

我有试过将char换成int,将inportb(0x60)换成inport(0x60),效果还是一样

2006-12-27 03:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 18 楼』:  

还是要修改中断?该如何改?

2006-12-27 05:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
AlwaysInherit
初级用户

征(武林高手||搞安全 ..



积分 112
发帖 46
注册 2005-9-28
状态 离线
『第 19 楼』:  

偷偷google再来顶帖!

http://www.osdev.org/osfaq2/index.php/Getting%20Keyboard%20Input

  Quote:
What's that E0 scancode i get all the time ? ...you should just store the info and wait for the next scancode to know what key even actually occured...



2006-12-27 06:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 20 楼』:  

谢谢,在study中.
还想问下zly910,你那段代码中加入的那2行汇编是起什么作用?

如果有看到,麻烦解答下,谢谢
有知道的大虾也帮看下

2006-12-27 06:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
AlwaysInherit
初级用户

征(武林高手||搞安全 ..



积分 112
发帖 46
注册 2005-9-28
状态 离线
『第 21 楼』:  

disable interrupt -> 避免被其他发生的interrupt切换走 , 应该是避免跟ISRs race

2006-12-27 06:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 22 楼』:  

问题解决了,读2次0X60,因为中断程序没次只能是读1个字节,就算是换成inport()也是没用的,象那些有2个字节的键,会先进去高位,一般高位都是E0,然后再进去低,如果没有新的中断近来,低位会一直驻留在0X60的PORT中!!

很高兴问题解决,感谢AlwaysInherit和zly910的顶立支持,感谢CCTV,感谢ChinaV!!

2006-12-27 08:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hebecoco
初级用户





积分 63
发帖 25
注册 2006-12-24
状态 离线
『第 23 楼』:  

提上来看下

2007-3-23 04:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: