为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

鼠标中断向量表 INT 33H

2017-11-30 8页 doc 22KB 21阅读

用户头像

is_079973

暂无简介

举报
鼠标中断向量表 INT 33H鼠标中断向量表 INT 33H 鼠标中断向量表 INT 33H 鼠标是计算机应用软件和系统软件中非常重要的一个交互工具。 在DOS下使用鼠标除了有鼠标驱动程序之外还需要调用鼠标的中断INT 33H这个中断只有在鼠标驱动程序加载之后才有效。当然还要有鼠标的硬件设备。 下面是鼠标中断向量表 功能号00H入口AL00H作用鼠标复位出口鼠标键数软件和硬件都被复位为缺省值注释复位之后的缺省值为 CRT页号0 光标关 当前光标位置屏幕中央 最小水平位置0 最小垂直位置0 最大水平位置显示模式的最大值 最大垂直位置显示模式的最大值 水平鼠...
鼠标中断向量表 INT 33H
鼠标中断向量表 INT 33H 鼠标中断向量表 INT 33H 鼠标是计算机应用软件和系统软件中非常重要的一个交互工具。 在DOS下使用鼠标除了有鼠标驱动程序之外还需要调用鼠标的中断INT 33H这个中断只有在鼠标驱动程序加载之后才有效。当然还要有鼠标的硬件设备。 下面是鼠标中断向量表 功能号00H入口AL00H作用鼠标复位出口鼠标键数软件和硬件都被复位为缺省值注释复位之后的缺省值为 CRT页号0 光标关 当前光标位置屏幕中央 最小水平位置0 最小垂直位置0 最大水平位置显示模式的最大值 最大垂直位置显示模式的最大值 水平鼠标移动单位对象素比率11 垂直鼠标移动单位对象素比率21 双速门槛每秒64 图形光标箭头 文本光标反显示块 光笔跟踪开 中断调用屏蔽0 功能号01H入口AL01H作用显示鼠标光标出口显示鼠标光标注释在系统加载鼠标驱动程序后鼠标光标是隐藏的如果想显示鼠标光标调用该功能即可实际上驱动程序有一个计数器对鼠标光标进行控制当该计数器为0时鼠标光标才显示出来每调用一次隐藏鼠标光标的功能功能号02H计数器值便减1每调用一次显示鼠标的功能时计数器值便加1直到计数器值为0为止。而在鼠标驱动程序加载后这个计数器的 。 功能号02H入口AL02H作用隐藏鼠标光标出口隐藏鼠标光标注释在屏幕显值为-1 示数据时隐藏鼠标光标是十分重要的。否则显示就会出问题在极个别的情况下还会导致计算机的复位和重新引导。 功能号03H入口AL03H作用读鼠标状态出口BX键状态 CX鼠标水平位置 DX鼠标垂直位置注释BX的第0位表示鼠标左键的状态BX的第1位表示鼠标右键的状态如果鼠标是三键的那么BX的第2位表示鼠标中键的状 X1左键按下BX2右键按下BX3左键和右态状态位为1时代表对应的键动作。 例如B 键同时按下。 在文本模式下CX与DX的值反映的并不是鼠标的实际位置而是实际的坐标乘以8后的数值因而在文本模式下取鼠标位置时要将CX和DX分别除以8。还有一个需要注意的问题是健状态仅表明的是键状态即不是单击也不是双击。在控制台环境下调用中断来使用鼠标单击和双击需要自己去编写代码来判断这和操作系统提供的API函数于开发工具提供的事件不同。因此必须理解鼠标单击和鼠标双击的概念鼠标单击的定义上要求按下并在指定的区域内按下动作发生位置的附近释放开某一个鼠标键也就是说并且事实上也是如此在鼠标单击的过程中有有多次键状态的响应为了达到判断鼠标单击的目的就要抵消这些重复的响应。一般常用的有这两种方式1延时2使用循环语句。第一种方式主要思想是延时250左右的毫秒千分之一秒抵消重复相应但是这种方式由于使用的是延时因而受到计算机运行速度的影响非常大而250仅是在80X86的值在现在的计算机上还要延时更长时间还有一个需要考虑的问题是在延时结束后如果用户还是没有松开鼠标键那么怎么办所以笔者不建议使用延时的方式。 笔者建议使用循环语句来抵消重复的响应这样既符合单击的定义又不受机器时钟周期和运行速度的影响。 具体做法是如果有鼠标键按下就进入一个当型循环While的循环当改变状态时退出循环并进行相应判断。 鼠标双击是连续两次的鼠标单击连续是一个较为模糊的概念在计算机实现中要使用延时而且延时是可以设置的。 功能号04H入口AL04H CX水平位置 DX垂直位置作用设置鼠标位置出口鼠标被设置到一个新的位置注释在文本模式下CX和DX要被赋值为实际位置乘以8。下同 功能号05H入口AL05H BX待测的键0测左键1测右键作用得到击键信息出口AX键状态 BX击键次数 CX最后一击时鼠标的水平位置 DX最后一击时鼠标的垂直位置 功能号06H入口AL06H BX待测的键同上作用得到键释放信息出口AX键状态 BX释放键的次数 CX最后释放时的水平位置 DX最后释放时的垂直位置 功能号07H入 口AL07H CX最小水平位置 DX最大水平位置作用设置水平边界。 即设置鼠标光标的水平移动范围。出口被修改了的水平边界 功能号08H入口AL08H CX最小垂直位置 DX最大垂直位置作用设置垂直边界。 即设置鼠标光标的垂直活动范围。出口被修改了的垂直边界 功能号09H入口AL09H BX水平中心 CX垂直中心 ESDX16X16位光标映象的地址作用设置图形光标出口安装了新的图形光标注释中心是指鼠标指针的位置即鼠标光标的热点。 例如00是光标的左上角1515是光标的右下角。 像素位映象掩码存储在ESDX指示的地址里是16X16的点阵光标掩码顺序存储在像素位映象掩码后面也是16X16的点阵。位映象掩码的内容与上16X16位的视频显示区然后光标掩码的内容异或16X16位的视频显示区就产生了光标。 例程使用Pascal语言描述 说明在Pascal语言中是注释或编译指示的符号在中为注释或编译指示的内容。 Type GraphiCursMaskTypeRecord MaskArray0.10.15of Word Word无符号整型数据占用2字节空间范围0.65535 上面的那一行代码定义了位映象掩码和光标掩码的存储空间 HorzHotSpotVertHotSpotInteger 定义了存储水平热点和垂直热点的变量 End Const StandardShapeCursGraphCursMaskType 定义类型常量即带有初始值的变量。形式Const变量名类型初始化的值 Mask 在Pascal语言中后面跟上0.F的字符代表十六进制数。 FFFFFFmessageFFFFFFFFFmessageFFmessage7F message3Fmessage1FFFFFFFF87FF8FFFC3F message0000000000C00E00F00 F80FC00000000080messageC0 上面的数据在理解的时候先转换为二进制数再写成16X16的形式就会发现是一个箭头 HorzHotSpot-1VertHotSpot-1 PointingHandCursGraphCursMaskType Mask E1FFE1FFE1FFE1FFE1FFE000E000E000 message00message00message00message00message00message00message00message00 E0000000000FF4949 49010101010101FFFF HorzHotSpot5VertHotSpot0 Procedure SetGraphicsCursorVar MaskGraphCursMaskType 定义过程 Var RegsRegistersRegistersDOS单元中预定义的类型 Begin With Regs Do Begin AX BXWordMask.HorzHotSpot 强制类型转换样式类型要转换为对应类型的变量 CXWordMask.VertHotSpot DXOfsMask 取Mask的偏移地址Offset Address ESSegMask 取Mask的段地址Segment Address End IntrRegs 调用中断33H End 功能号0AH入口AL0AH BX光标类型0表示软件1表示硬件 CX像素位验码或起始的扫描 光标位掩码或结束的扫描线作用设置文本光标出口改变文本光标注释这个似线 DX 乎不是设置鼠标文本光标的而实际是和OEM提供的资料类似设置文本光标的 功能号0BH入口AL0BH作用读移动计数器出口CX水平距离 DX垂直距离注释返回距上次调用后光标移动的距离 功能号0CH入口AL0CH CX中断掩码 ESDX中断服务程序的地址作用设置中断子程序出口安装了新的中断处理程序注释中断掩码定义请求安装中断处理程序的动作。下面列出了按中断掩码产生中断的动作。注意这些动作可以是单个的或是以组合方式出现。 例如中断掩码是8加2即100AH引起左键或者右键压下中断。 1按光标位置任意改变 2压下鼠标左键 4释放鼠标左键 8压下鼠标右键 16释放鼠标右键 当由于选中一种变动而调用已安装的中断程序后寄存器包含的鼠标信息如下 AX中断掩码 BX键状态 CX水平位置 DX垂直位置 SI水平位置的变化 DI垂直位置的变化 功能号0DH入口AL0DH作用允许光笔仿真出口光笔仿真被启动注释用在鼠标必须随时代替光笔的时候 功能号OEH入口AL0EH作用禁止光笔仿真出口禁止光笔仿真注释用于禁止光笔仿真 功能号0FH入口AL0FH CX水平 比率 DX垂直比率作用设置鼠标与像素速率之比出口改变了鼠标的移动灵敏度注释这个功能允许改变屏幕跟踪鼠标光标的速度。缺省值为1如改为2速度将降为正常值的一半。 功能号10H入口AL10H CX左边界 DX上边界 SI右边界 DI下边界作用熄灭光标出口熄灭付ù翱谥械鼠标光标注释寄存器CXDXSIDI所指窗口范围内的鼠标熄灭。 功能号13H入口AL13H DX阀值作用设置倍速出口改变倍速移动指针的阀值注释缺省的鼠标指针加速的阀值为64这个功能会改变此阀值为任何其他值。 功能号14H入口AL14H CX中断掩码 ESDX中断处理程序地址作用交换中断出口CX旧的中断掩码 ESDX旧的中断程序地址注释和INT 33H的0CH功能一样本功能也是安装新的中断处理程序不同点在于14H功能是替换用0CH功能所安装的中断处理子程序。 功能号15H入口AL15H作用得到鼠标状态的尺寸出口BX鼠标状态信息要求的缓冲区大小注释此功能给出用INT33H的16H功能存储的鼠标状态信息的缓冲区大小。 功能号16H入口AL16H ESDX存储鼠标状态信息地址作用存储鼠标状态信息出口注释保存当前鼠标状态 功能号17H入口AL17H ESDX鼠标状态信息地址作用重新装 18H入口AL18H CX替换中断掩载鼠标状态信息出口注释重装鼠标状态信息 功能号 码 ESDX替换中断服务程序的地址 CF0作用设置替换中断子程序出口替换中断处理程序已安装注释替换例程在中断例程后被调用替换中断掩码定义了请求替换例程的动作下面是动作定义表 1鼠标改变位置 2左键按下 4左键释放 8右键按下 16右键释放 32Shift和鼠标同时按下 64Ctrl和鼠标同时按下 128Alt和鼠标同时按下 中断安装以后选择变量之一调用。下面的寄存器包括了关于鼠标的信息 CF1 AX中断掩码参考0CH功能 BX键状态 CX水平位置 DX垂直位置 SI水平变动 DI垂直变动 功能号19H入口AL19H CX替换中断掩码作用得到替换中断的地址出口如果不成功AX-1。 ESDX中断服务程序的地址注释用来读取替换中断例程的地址 功能号1AH入口AL1AH BX水平灵敏度 CX垂直灵敏度作用设置鼠标灵敏度出口改变了鼠标的灵敏度注释水平和垂直灵敏度缺省值均为50双速阀值缺省为64灵敏度范围在1100之间。表示比例在33到350之间。 功能号1BH入口AL1BH作用得到鼠标灵敏度入口出口BX水平灵敏度 CX垂直灵敏度 DX倍速阀值 功能号1CH入口AL1CH BX每秒中断次数作用设置中断速率出口只改变鼠标输入口的中断速度注释缺省值为1代表每秒30次。但可改为以下值 0关中断 130次/秒 250次/秒 3100次/秒 4200次/秒 功能号1DH入口AL1DH BXCRT页号作用设置CRT页出口鼠标支持切换到新的CRT页 功能号1EH入口AL1EH作用得到CRT页号出口BXCRT页号 功能号1FH入口AL1FH作用禁止鼠标驱动程序出口如果不成功AX-1 ESBX鼠标驱动程序地址 功能号20H入口AL20H作用启动鼠标驱动程序出口鼠标驱动程序启动 功能号21H入口AL21H作用软件复位出口如果不成功AX0FFFFH 如果成功BX2 功能号22H入口AL22H BX语言代号作用设置语言出口只按国际方式改变语言注释用BX改变下面语言 0英语 1法语 2荷兰语 3德语 4瑞典语 5芬兰语 6西班牙语 7葡萄牙语 8意大利语 功能号23H入口AL23H作用获得语种出口BX语种号码 功能号24H入口AL24H作用获得驱动程序版本出口BH主版本号 BL辅版本号 CH鼠标类型 CL中断请求号 功能号25H入口AL25H作用得到驱动程序信息出口AX驱动程序信息注释出口参数AX包括以下各位指示的驱动程序信息二进制位 FEDCBA98 76543210含义.xx..00软件文本光标激活 01硬件文本光标激活 1x图形光标激活.x..0不完全的鼠标显示程序 1完全的鼠标显示程序x..0驱动程序是.sys文件 1驱动程序是.com文件 功能号26H入口 AL26H作用得到最大有效坐标出口BX鼠标驱动程序状态 CX最大水平坐标 DX最大垂直坐标 功能号27H出口27H作用得到光标掩码和计数入口AX屏幕掩码或开始扫描行 BX光标掩码或结束扫描行 CX水平计数 DX垂直计数 功能号28H入口AL28H CX视频方式 DX字体大小作用设置视频方式出口如果成功的话CX0 功能号29H入口AL29H CX搜索标记作用取所支持的视频方式入口出口BXDX描述视频方式的ASCII码地址 如果成功CX0号方式注释搜索标记是0就搜索第一个视频方式非0就搜索下一个视频方式。 功能号2AH入口AL2AH作用取光标热点出口AX显示标志 BX水平热点 CX垂直热点 DX鼠标类型注释热点是当鼠标按下时光标所在位置。AX显示标志指示光标是激活0还是非激活1 功能号2BH入口AL2BH BX曲线号 ESSI加速曲线的地址作用设置加速曲线出口如果成功AX0注释下面是加速曲线表包括曲线1至曲线4偏移量的意义00H曲线1计数01H曲线2计数02H曲线3计数03H曲线4计数04H曲线1鼠标计数和阀值24H曲线2鼠标计数和阀值44H曲线3鼠标计数和阀值64H曲线4鼠标计数和阀值84H曲线1比例因子阵列A4H曲线2比例因子阵列C4H曲线比例因子阵列E4H曲线4比例因子阵列104H曲线1名字114H曲线2名字124H曲线3名3 字134H曲线4名字 功能号2CH入口AL2CH BX当前曲线 ESSI当前加速曲线地址作用取加速曲线出口如果成功AX0 功能号2DH入口AL2DH BX曲线号或当前号-1作用取活动的加速曲线出口如果成功AX0 BX曲线号ESSI加速曲线地址 功能号2FH入口AL2FH作用鼠标硬件复位出口如果成功AX0 功能号30H入口AL30H BX转角 0为读1为写作用设置/取得球指针信息出口如果不成功或处于按钮状?32K CX命令 态AX0FFFFH。 BX转角CX按钮掩码 功能号31H入口AL31H作用取的有效坐标出口AX最小水平坐标 BX最小垂直坐标 CX最大水平坐标 DX最大垂直坐标 功能号32H入口AL32H作用取得激活的高级功能出口AX功能标记注释功能标记标志INT 33H高级功能有效最左边一位表示25H最右边一位表示34H 功能号33H入口AL33H CX缓冲器长度 ESDI缓冲器地址作用取得开关设置出口AX0 CX缓冲器中的字节 ESDI缓冲器地址 功能号34H入口AL34H作用取得mouse.ini出口AX0 ESDX缓冲器地址 摘于
/
本文档为【鼠标中断向量表 INT 33H】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索