做一个支持图形界面的操作系统(下).docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
做一个支持图形界面的操作系统(下)

让你自己的操作系统支持鼠标 副标题:做一个支持图形界面的操作系统(下) 作者:谢煜波 文章来源:本站原创 点击数: 240 更新时间:2004-10-7 pdf 格式:/Soft/Class9/Class16/200410/67.html 源代码:/Soft/Class9/Class16/200410/66.html 转载请注明原作者及出处 让你自己的操作系统支持鼠标 ——做一个支持图形界面的操作系统(下) Version 0.01 ( 对应 pyos 版本 2004_10_06_15_00 ) ? 哈尔滨工业大学 谢煜波 ( email:xieyubo@126.com 网址: ) ( QQ哈工大紫丁香 BBS ID:iamxiaohan ) ? 前言 在上篇中,我们已经了解了怎样显示一个图形界面,包括怎样操作显卡,怎样显示图片,怎样显示中文汉字及英文字符。然而,作为一个完整的图形界面,不光需要显示信息,还需要接受用户输入,而在图形界面中,最重要的输入手段就是通过鼠标进行输入,在这一篇中我们将描述一下怎么样让你自己的操作系统支持鼠标。 由于鼠标存在很多的接口协议,这里我们只对最常用的PS/2协议进行描述。本文主旨在于引导对此感兴趣而又不知怎么下手的朋友,亲自动手进行实验,因此,不会详细描述协议的完整内容,如果你需要了解整个协议内容,你应当去寻找相关文献进行阅读,也可以参考一个本文的参考文献。 本文所描述的内容均基于我自己对此问题的理解,其中定然存在偏差及不当之处,因此,千万别将此文中所描述的内容作为“标准”,如果你一旦发现其中存在的问题,非常欢迎您及时与我联系,我也会在纯C论坛上()及时对其中出现的问题进行反馈。 本次我同样将以pyos为基础进行实验,下面我们先来看看这次实验的最终成果: 这是pyos启动后,等待用户登陆的界面 ? 这是用户登陆后的界面,相当于windows的桌面 ? 用鼠标的右键可以拖动应用程序图标 ? 单击图标可以打开应用程序,这个应用程序是一个推箱子游戏 ? 用I,J,K,L四个键可以玩游戏,Esc键或者用鼠标单击窗口标题栏的关闭按钮可以关闭它 ? 用鼠标右键拖动窗口的标题栏可以拖动整个窗口,就像windows中一样 ? 单击左下角的“关机”按钮,可以退出pyos ? 这是关机后,pyos退出后的界面 ? 上面就是本实验的最终实验结果,希望通过阅读此篇实验报告之后,你能完成一个比这更好的实验:)。 本次实验对也是对前几次实验的一个综合,其中用到了《操作系统引导探究》、《保护模式下的8259A芯片编程及中断处理探究(上下)》、《编写操作系统之键盘交互的实现》、《做一个支持图形界面的操作系统(上)》这几篇实验报告中所描述的内容。因此,如果你想更好的理解本实验的内容,可以在纯C论坛上找到上面几篇实验报告进行参考,本篇实验报告将不会对以前实验报告中已提到的内容重复论述。 SwordLea建议支持符合windows标准的bmp图片格式,pineapple帮助我找了到了windows下的图标,hotice指导使用PhotoShop, and so on~~:) 言归正传,下面开始进行我们的实验。 ? i8042 键盘控制器编程控制鼠标 现在我们用的鼠标,大多是支持PS/2协议的鼠标,这样的鼠标也被称为PS/2 鼠标,PS/2协议其实支持两种设备,一种是键盘,一种是鼠标,它是由IBM公司制定的,协议的本身定义了键盘与鼠标同主机进行通迅的规则,其中包括了大量的物理及电器方面的信息,比如鼠标连接线的插头的管脚(针)数,每个管脚(针)的用途,电平是多少等,不过幸运的是,我们并不需要对这样的硬件细节有详细的了解,就可以完成我们的操作系统,我们需要了解的就是怎样初始化鼠标,以及怎样从鼠标中获得信息。 这里,我们首先来看看怎样初始化鼠标。根据PS/2协议,鼠标是由键盘的控制器(i8042)进行控制的,键盘控制器(i8042)总共有两个通道,一个通道由键盘使用,另一个通道由鼠标使用,我们对鼠标进行操作也是通过i8042芯片来完成的,因此,现在的重点就是了解并熟悉怎样对i8042进行编程,来完成对鼠标的控制。 i8042支持两种工作模式——AT模式及PS/2模式,这都是由IBM所定义的一些规范,i8042在计算机启动时会自动检测用户是否使用的支持PS/2协议的键盘及鼠标,以决定是否工作在PS/2模式下,现在我们假设我们使用的都是PS/2键盘及鼠标,因此,现在i8042工作在PS/2模式下(请记住这一点,即i8042可以工作在AT模式或者PS/2模式下,并且现在假设其工作在PS/2模式下,这在后面将会用到)。 与i8042有关的I/O端口共有两个,一个是0x60端口,一个是0x64端口,

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档