如何改变键盘按键重复速度和重复的延缓时间?

夏夜's星空 2003-09-26 09:01:33
如何改变键盘按键重复速度和重复的延缓时间?
就是实现控制面板里改变重复速度和重复的延缓时间的功能,但要求程序实现,而且必须是DOS程序
我弄了一天了,也没找到相关资料。好象和8255A和8279的资料有关。但假信息很多。
谁有这方面的资料或经验?
最近在改进我的游戏程序,但有一个问题。键盘控制移动速度太慢,明显跟不上鼠标移动速度。所以想加快键盘重复速度。
而且程序中同时按住两个键(如方向键向上和方向键向左),当松开其中一个键时,尽管另外一个键是按住的,仍然没有键盘中断发送过来。
但是雷电3游戏就没有这个问题。
难道需要接管键盘中断,在键按下之时记录某个键处于按下状态,然后在键松开时解除该状态?
有没有一个io端口可以实现程序强制扫描键盘某个键的状态?
...全文
531 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aabiao 2003-09-26
  • 打赏
  • 举报
回复
mode con rate=30 delay=2
速度30/s,延时500ms
dunkel 2003-09-26
  • 打赏
  • 举报
回复
INT 16 03-- - KEYBOARD - SET TYPEMATIC RATE AND DELAY

Inp.:
AH = 03h
AL = subfunction
00h set default delay and rate (PCjr and some PS/2)
01h increase delay before repeat (PCjr)
02h decrease repeat rate by factor of 2 (PCjr)
03h increase delay and decrease repeat rate (PCjr)
04h turn off typematic repeat (PCjr and some PS/2)
05h set repeat rate and delay (AT,PS)
BH = delay value (00h = 250ms to 03h = 1000ms)
BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)

06h get current typematic rate and delay (newer PS/2s)
Return: BL = repeat rate (above)
BH = delay (above)
Return: AH destroyed by many BIOSes
Note: use INT 16/AH=09h to determine whether some of the subfunctions are
supported

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧