标题:最简单鼠标驱动.
取消只看楼主
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
 问题点数:0 回复次数:2 
最简单鼠标驱动.
[CODE]
/*
(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
出口参数:无

作者:ioriliao
编写日期:2008.01.05
修改日期:2008.01.05

编译环境:bc3.0
*/
#include <stdio.h>
void mouse_init(void);
void mouse_show(void);
void mouse_hide(void);
typedef void (*fun)(void);
typedef enum{mouseInit, mouseShow, mouseHide}ctrlType;
fun* fun_count[]={mouse_init, mouse_show, mouse_hide};
void mouse_control(ctrlType ctrltype);

int main(void)
{
    mouse_control(mouseInit);
    mouse_control(mouseShow);
    getchar();
    mouse_control(mouseHide);
    return 0;
}
//mouse init
void mouse_init(void)
{
    unsigned int axx,bxx;
    asm mov ax,0x0;
    asm int 0x33;
}
//mouse show
void mouse_show(void)
{
    unsigned int x,y;
    asm mov ax,0x1;
    asm int 0x33;
}
//void mouse hide
void mouse_hide(void)
{
    asm mov ax,0x2;
    asm int 0x33;
}
//mouse control
void mouse_control(ctrlType ctrltype)
{
    fun* function=fun_count;
        function[ctrltype]();
}
[/CODE]
在此献下丑.
小弟才疏学浅,望硬件编程的前辈们高手们多多指点.

[[italic] 本帖最后由 ioriliao 于 2008-1-5 20:33 编辑 [/italic]]
搜索更多相关主题的帖子: 鼠标 指针 驱动 屏幕 
2008-01-05 20:29
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
这个我就不大清楚了灭火兄,不过好像有个库叫dos.h有类似的函数么?
对于C的库我真的知道比较少.
2008-01-05 21:21
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
个人认为还是使用有内联汇编会比较有意思点...
对于C的各种函数库我了解得很少,我除了对C的语法
是了解之外(还不算很通呢),其它的可以说是一无所知了.
2008-01-05 23:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-196067-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 3.207872 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved