最简单鼠标驱动.
[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]]