diff --git a/README.md b/README.md index bb15208..e9ee916 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,15 @@ 核心:将鼠标输入放入一个缓冲队列,再由事件(消息)驱动子系统从队列中取出鼠标事件并处理: 如果是鼠标移动,则在新的位置上重新绘制光标; 如果是鼠标点击,则根据当前进程注册的鼠标点击函数来响应点击事件。 -1.驱动鼠标 -2.让显示器在图形模式下工作 +1.完整编写一个外设驱动 +2.编写程序完成对图形模式显示器的驱动和管理 3.设计并实现一个事件(消息)驱动系统 4.实现一个可视化应用程序(bird) -### 编写鼠标中断处理函数 +### 鼠标的驱动 1.模仿键盘中断初始化设置语句(鼠标也是控制台设备),也将鼠标中断设置语句放在函数con_init(); (console.c) -2.编写mouse.s(实际上应该是mouse.S),在其中实现mouse_interrupt -【由于给操作系统源码增加了一个新文件,所以还要修改Makefile文件】--模仿键盘修改 -3.因为是调用readmouse进行细致处理,所以还要编写readmouse(tty_io.c)--对信号处理--需要下面知识 +2.设置键盘控制器i8042和中断控制器8259A +3.鼠标输入数据的编码.因为是调用readmouse进行细致处理,所以还要编写readmouse(tty_io.c)--对信号处理--需要下面知识 在获取鼠标操作码时使用了端口地址0x60,这个端口对应的数据寄存器在键盘控制器上,因此需了解键盘控制器原理。 详细看 李治军pdf 12.2.2 @@ -33,7 +32,7 @@ 4.设置屏幕分辨率 -### 开始绘制屏幕 +5.开始绘制屏幕 参考此处的图形模式下绘制鼠标的核心代码,为后面图的绘制作参考 ## 消息驱动框架