c语言程序设计课程大型作业(编辑修改稿)内容摘要:

序提供与鼠标通信所需的全部低级支持。 此外,它自动维持鼠标光标位置和发现是否按下了某个键。 一旦装入驱动程序,鼠标就可以被随后执行的任意程序使用。 鼠标简介 可以通过 PC中断 33H访问鼠标和鼠标驱动程序的各种功能。 所选择的特定函数依赖于中断时 AX寄存器的值。 三个其它寄存器( BX、 CX和 DX)用于把各种参数传送给鼠标例程。 同样,鼠标函数使用这四个寄存器把鼠标的位置和按钮的状态返回给调用函数。 鼠标驱动程序主要功能 功能 输入值 输出值 功能调用初始化 无 AX B X AX =0 0 0 0显示光标 无 无 AX =0 0 0 1隐藏光标 无 无 AX =0 0 0 2读取状态 无 B XC XD X AX =0 0 0 3设置位置 CX 、 DX 无 AX =0 0 0 4设置光标 B XC XD X 无 AX =0 0 0 9鼠标驱动程序主要功能 功能 输入值 输出值 功能调用X 范围 C X D X 无 AX =0 0 0 7Y 范围 C X D X 无 AX =0 0 0 8光标范围 C X DX S IDI无 AX =0 0 1 0中断程序 C X ES :DX无 AX =0 0 0 C鼠标功能调用方法 用 TC通过 INT33H中断来编制基本函数,有三种常用方法: • 嵌入汇编程序,如: ASM CLI清中断 • 利用全程变量赋予寄存器值,然后通过函数 geninterrupt( )调用中断实现 • 利用联合类型 REGS, SREGS通过函数int86(),int86x()调用中断,原型在 鼠标的初始化 InitMouse() { union REGS regs。 =0。 int86(0x33,amp。 regs,amp。 regs)。 if(==0) return false。 else return true。 } 鼠标光标的隐藏 HideCur() { union REGS regs。 if(visual){ =2。 int86(0x33,amp。 regs,amp。 regs)。 visual=false。 }} 鼠标光标的显示 ShowCur() { union REGS regs。 if(!visual){ =1。 int86(0x33,amp。 regs,amp。 regs)。 visual=true。 }} 鼠标光标的显示与隐藏 在鼠标驱动程序中 , 鼠标的显示状态用 0值表示 , 隐藏用负值表示 , 每调用一次显示功能则该值加一 , 每调用一次隐藏功能 , 则该值减一。 这样 , 在多次调用了驱动程序的隐藏鼠标光标功能后 , 再调用显示鼠标光标功能时 , 将不能正常显示鼠标光标。 需要加入一个 visual布尔型变量 , 来取代驱动程序中的数值。 读取鼠标的状态 Status( ) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。