中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 18:08
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 请问DOS程序读键盘输入的方法 查看 1,810 回复 3
楼 主 请问DOS程序读键盘输入的方法 发表于 2008-07-01 14:01 ·  中国 广东 深圳 电信
新手上路
积分 6
发帖 2
注册 2008-07-01 11:18
UID 120978
性别 男
状态 离线
请问DOS程序读键盘输入,可以使用INT 9吗?一般读键盘输入内容都使用什么方法?
2 发表于 2008-07-01 17:19 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
UID 94024
性别 男
状态 离线
如果你不是想接管INT 9H,你可以参照我的帖子http://www.cn-dos.net/forum/viewthread.php?tid=40477&fpage=3来获取键盘伪扫描码。
如果你想自己编写INT 9H来替换原来的BIOS键盘中断功能,那你需要用I/O从60H、61H读取键盘扫描码,还要通过查表得到对应的ASC II码并存入BIOS键盘缓冲区0000:041E~043D,同时还要修改键盘缓冲区头(041A~041B)尾(041C~041D)指针,对于按下和释放CTRL、ALT、SHIFT、NUM、SCROLL、CAPS、INS键,你需要对0417~0419相应的位进行置1和清零操作。另外一个最大麻烦是—不同的接口的键盘所用的I/O口及相应的规范不一致。

[ Last edited by netwinxp on 2008-7-1 at 05:21 PM ]
3 发表于 2008-07-02 11:35 ·  中国 广东 深圳 电信
新手上路
积分 6
发帖 2
注册 2008-07-01 11:18
UID 120978
性别 男
状态 离线
多谢 netwinxp
4 发表于 2009-01-16 16:05 ·  IANA 本机地址
新手上路
积分 11
发帖 6
注册 2009-01-04 20:38
UID 135781
性别 男
状态 离线
DOS程序读键盘输入的C++函数
http://www.hepu.cn/hzj/hcc3/hcc3_4.htm
论坛跳转: