不外接ps/2鼠标,完全程序模拟鼠标 导致问题。

quicksoftxyz 2008-03-15 04:12:09
问题描述

程序中模拟鼠标 采用直接写i8042端口。外接ps/2鼠标时,程序可以正常模拟,不外接ps/2鼠标时,达不到模拟的效果。

原因应当是不外接ps/2鼠标时,i8042里和鼠标有关的信息没有正确配置。于是人为设置,但有错。

设置代码如下,

// 等待i8042输入缓冲器可用
void KBCWait4IBE()
{
DWORD dwVal;

do
{
GetPortVal(0x64, &dwVal, 1);
}while(dwVal & 0x2);

return;
}

// 向i8042控制寄存器写入0x47 ,允许鼠标。
KBCWait4IBE();
_asm mov al, 0x60
_asm out 0x64, al

KBCWait4IBE();
_asm mov al, 0x47
_asm out 0x60, al

i8042控制寄存器各位描述:
Bit7: 保留,应该为0
Bit6: 将第二套扫描码翻译为第一套
Bit5: 置1,禁止鼠标
Bit4: 置1,禁止键盘
Bit3: 置1,忽略状态寄存器中的 Bit4
Bit2: 设置状态寄存器中的 Bit2
Bit1: 置1,enable 鼠标中断
BitO: 置1,enable 键盘中断


有经验的同志,帮帮看看吧。很急用。
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysmashimaro 2008-09-16
  • 打赏
  • 举报
回复
帮你顶
江城老温 2008-05-30
  • 打赏
  • 举报
回复
帮顶!
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
接分先!

21,459

社区成员

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

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