中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: INT33 详细说明文档 上一主题 | 下一主题
dsysps
初级用户





积分 98
发帖 34
注册 2006-11-3
状态 离线
『楼 主』:  INT33 详细说明文档

希望对DOS下使用鼠标或触摸屏的朋友有所帮助

INT33 说明
(1)、功能00H

功能描述: 初始化鼠标,该操作只需要执行一次
入口参数: AX=00H
出口参数: AX=0000H——不支持鼠标功能,FFFFH——支持鼠标功能
BX=鼠标按钮个数(在支持鼠标功能时)
在支持鼠标功能的情况下,鼠标还被设置如下参数:
1、 鼠标指针放在屏幕中央
2、 如果当前鼠标指针是显示的,则操作后,鼠标指针被隐藏
3、 鼠标指针的显示页为0
4、 根据屏幕的显示模式显示鼠标指针:文本—反向显示矩形块,图形—尖头形状
5、 水平象素比=8:8,垂直象素比=16:8
6、 设置水平和垂直的显示边界为当前显示模式的最大边界
7、 允许光笔仿真
8、 双速门槛值=64

(2)、功能01H

功能描述: 显示鼠标指针,通常在鼠标初始化后,用此功能显示其指针
入口参数: AX=01H
出口参数: 无

(3)、功能02H

功能描述: 隐藏鼠标指针,一般在程序结束时,调用此功能
入口参数: AX=02H
出口参数: 无

(4)、功能03H

功能描述: 读取鼠标位置及其按钮状态
入口参数: AX=03H
出口参数: BX=按键状态: 位0=1——按下左键
位1=1——按下右键
位2=1——按下中键
其它位——保留,内部使用
CX=水平位置
DX=垂直位置

(5)、功能04H

功能描述: 设置鼠标指针位置
入口参数: AX=04H,CX=水平位置,DX=垂直位置
出口参数: 无

(6)、功能05H

功能描述: 读取鼠标按键信息
入口参数: AX=05H,BX=指定的按键:0—左键,1—右键,2—中键
出口参数: AX=按键状态,参见功能3H中BX的说明
BX=按键次数
CX=水平位置(最后按键时)
DX=垂直位置(最后按键时)

(7)、功能06H

功能描述: 读取鼠标按钮释放信息
入口参数: AX=06H,BX=指定的按键:0—左键,1—右键,2—中键
出口参数: AX=按键状态,参见功能3H中BX的说明
BX=释放的次数
CX=水平位置(最后释放时)
DX=垂直位置(最后释放时)

(8)、功能07H

功能描述: 设置鼠标水平边界
入口参数: AX=07H
CX=最小水平位置
DX=最大水平位置
出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内

(9)、功能08H

功能描述: 设置鼠标垂直边界
入口参数: AX=08H
CX=最小垂直位置
DX=最大垂直位置
出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内

(10)、功能09H

功能描述: 设置图形鼠标形状
入口参数: AX=09H
BX=指针的水平位置
CX=指针的垂直位置
ES:DX=16×16位光标的映象地址 参数说明: (BX,CX)是鼠标的指针在16×16点阵中的位置,(0,0)是左上角;
ES:DX指向的存储单元内存放16×16点阵的位映象隐码,紧跟其后的是16×16点阵的光标掩码。
鼠标指针的显示方法: 位映象隐码“逻辑与”上屏幕显示区的内容,然后再用光标掩码内容“异或”前面运算的结果。

出口参数: 无

(11)、功能0AH

功能描述: 设置本文鼠标形状
入口参数: AX=0AH
BX=光标类型: 0 — CX和DX的各位含义如下: 位7~0 鼠标指针符号
位10~8 字符前景色
位11 亮度
位14~12 字符背景色
位15 闪烁

1 — CX=光标的起始扫描线
DX=光标的结束扫描线

出口参数: 无

(12)、功能0BH

功能描述: 读取鼠标移动计数
入口参数: AX=0BH
出口参数: CX=水平移动距离:正数——向右移,负数——向左移
DX=垂直移动距离:正数——向下移,负数——向上移

(13)、功能0CH

功能描述: 为鼠标事件设置处理程序
入口参数: AX=0CH
CX=中断掩码
位0=1 ——鼠标指针位置发送变化
位1=1 ——按下左按钮
位2=1 ——释放左按钮
位3=1 ——按下右按钮
位4=1 ——释放右按钮
位5=1 ——按下中间按钮
位6=1 ——释放中间按钮
位7~15=0 ——保留

ES:DX=中断处理程序的地址

在进入中断处理程序时,有关寄存器的值含义:
  AX=中断掩码
  BX=按键状态
  CX=鼠标指针的水平位置
  DX=鼠标指针的垂直位置
  SI=水平位置的变化量
  DI=垂直位置的变化量

出口参数: 无

(14)、功能0DH

功能描述: 允许光笔仿真
入口参数: AX=0DH
出口参数: 无

(15)、功能0EH

功能描述: 关闭光笔仿真
入口参数: AX=0EH
出口参数: 无

(16)、功能0FH

功能描述: 设置鼠标计数与象素比
入口参数: AX=0FH
CX=水平比例
DX=垂直比例
出口参数: 无

(17)、功能10H

功能描述: 设置鼠标指针隐藏区域
入口参数: AX=10H
CX=左上角X坐标
DX=左上角Y坐标
SI=右下角X坐标
DI=右下角Y坐标
出口参数: 无

(18)、功能13H

功能描述: 设置倍速的阈值,其缺省值为64
入口参数: AX=13H
DX=阀值
出口参数: 无

(19)、功能14H

功能描述: 替换鼠标事件中断
入口参数: AX=14H
CX=中断掩码
ES:DX=中断处理程序的地址
出口参数: CX=旧的中断掩码
ES:DX=旧的中断处理程序地址
(20)、功能15H

功能描述: 读取鼠标驱动器状态的缓冲区大小
入口参数: AX=15H
出口参数: BX=存放鼠标驱动器状态所需缓冲区的大小

(21)、功能16H

功能描述: 存储鼠标驱动器状态
入口参数: AX=16H
ES:DX=存储鼠标驱动器状态的地址
出口参数: 无

(22)、功能17H

功能描述: 重装鼠标驱动器状态
入口参数: AX=17H
ES:DX=鼠标驱动器状态的地址
出口参数: 无

(23)、功能18H

功能描述: 为鼠标事件设置可选的处理程序
入口参数: AX=18H
CX=替换中断掩码
ES:DX=替换中断处理程序的地址
CF=0
出口参数: 无

(24)、功能19H

功能描述: 读取替换处理程序的地址
入口参数: AX=19H
CX=替换中断掩码
出口参数: 若AX=-1——不成功,否则,ES:DX=中断处理程序的地址

(25)、功能1AH

功能描述: 设置鼠标的灵敏度,其取值1~100
入口参数: AX=1AH
BX=水平灵敏度(每8个象素鼠标需要移动的数量,一般为8)
CX=垂直灵敏度(每8个象素鼠标需要移动的数量,一般为16)
DX=倍速阀值
出口参数: 无

(26)、功能1BH

功能描述: 读取鼠标的灵敏度
入口参数: AX=1BH
出口参数: BX=水平灵敏度
CX=垂直灵敏度
DX=倍速阀值

(27)、功能1CH

功能描述: 设置鼠标中断速率
入口参数: AX=1CH
BX=每秒钟中断的次数:0—关中断,1—30/S,2—50/S,3—100/S,4—200/S
出口参数: 无

(28)、功能1DH

功能描述: 为鼠标指针选择显示页
入口参数: AX=1DH
BX=显示页
出口参数: 无

(29)、功能1EH

功能描述: 读取鼠标指针的显示页
入口参数: AX=1EH
出口参数: BX=显示页

(30)、功能1FH

功能描述: 禁止鼠标驱动程序
入口参数: AX=1FH
出口参数: 若AX=-1——不成功,否则,ES:BX=鼠标驱动程序的地址

(31)、功能20H

功能描述: 启动鼠标驱动程序
入口参数: AX=20H
出口参数: 无

(32)、功能21H

功能描述: 鼠标驱动程序复位
入口参数: AX=21H
出口参数: 若AX=-1——不成功,否则,BX=2

(33)、功能22H

功能描述: 设置鼠标驱动程序信息语言
入口参数: AX=22H
BX=语言代码:0—英语,1—法语,2—荷兰语,3—德语,4—瑞典语,5—芬兰语,6—西班牙语,7—葡萄牙语,8—

意大利语
出口参数: 无

(34)、功能23H

功能描述: 读取语种
入口参数: AX=23H
出口参数: BX=语言代码

(35)、功能24H

功能描述: 读取鼠标信息
入口参数: AX=24H
出口参数: BH=主版本号,BL=辅版本号
CL=中断请求号
CH=鼠标类型:1-Bus Mouse,2-Serial Mouse,3-InPort Mouse,4-PS/2 Mouse,5-HP Mouse

(36)、功能25H

功能描述: 读取鼠标驱动程序信息
入口参数: AX=25H
出口参数:  
AX=鼠标驱动程序信息:
位15 ——0: 驱动程序是.SYS文件,否则,为.COM文件
位14——0: 不完全鼠标显示驱动程序,否则,为完全的
位13-12——00: 软件文本光标
01: 硬件文本光标
1X: 图形光标

(37)、功能26H

功能描述: 读取最大有效坐标
入口参数: AX=26H
出口参数: BX=鼠标驱动程序状态
CX=最大水平坐标
DX=最大垂直坐标

2006-11-18 00:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhgwbzhd
高级用户





积分 506
发帖 187
注册 2005-12-4
状态 离线
『第 2 楼』:  

恩,这方面的知识刚刚看过,在求伯君的那本书中有很详细的解释。你的解释也很好。

2006-11-18 03:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zyw052553
新手上路




积分 18
发帖 9
注册 2006-12-18
状态 离线
『第 3 楼』:  

太详细了,能给出一些应用的例子就更好了

2006-12-19 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
defrag
中级用户

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 4 楼』:  

DO
CALL GetMouseStatus(BTN,Y,X)
IF BTN=1 AND Y<=3 AND X<=2 AND Y>=2 AND X>=2 THEN btnOK_Click
K$=INKEY$
IF K$<>"" THEN Screen_KeyPress
LOOP
用汇编写一下



DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload]
2007-2-22 08:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
defrag
中级用户

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 5 楼』:  

DS:DX DSX
DS:DI DSI
ES:DX ESX
ES:DI ESI
ADD CS:[BX+SI],AL
ADD CS:[BX+SI],AL

发贴时最好用参数:
X 禁用 URL 识别
X 禁用 Smilies
X 禁用 Discuz! 代码
口 使用个人签名
口 接收新回复邮件通知



DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload]
2007-2-22 09:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tobb133
新手上路





积分 18
发帖 9
注册 2008-9-16
状态 离线
『第 6 楼』:  

看过了,很有用

2008-10-12 19:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: