DOS下屏保程序设计实现课程设计.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DOS下屏保程序设计实现课程设计

成绩 中国农业大学 课程设计报告 (2015-2016学年夏季学期) 设计题目: DOS下屏保程序设计实现 任课教师: 沈翠华 计算机141 学  号: 1408010112 姓  名: 黄帅琪 目录 一、 要求与需求分析 1 1. 题目重述: 1 2. 需求分析: 1 二、 程序设计分析: 1 1. 屏保绘制模块 1 1.1、 图形录入: 1 1.2、 动画绘制: 2 2. 非工作状态计时模块 2 2.1、 计时功能: 2 2.2、 判断是否处于工作状态 2 3. 检测键盘输入模块 3 4. 中断设置及内存驻留程序 3 三、 程序流程图 3 1. 装载程序: 3 2. 定时器中断处理程序: 4 3. 键盘中断处理程序: 4 4. 屏幕保护程序: 5 四、 核心模块功能介绍 5 1. 装载程序(INSTALL): 5 2. 更改后的计时器中断(FUNCTIMER): 5 3. 更改后的键盘中断(INT9): 6 4. 屏保程序(SCREENSAVER): 6 5. 屏保绘制模块(PRINT): 6 6. 贴图函数(ONEBITMAP/ZEROBITMAP): 6 7. 延时处理函数(ONEBITMAP/ZEROBITMAP): 6 8. 清屏宏(CLRSCREEN): 6 五、 程序运行步骤 6 六、 设计过程中遇到的主要技术难点及解决方案 7 1. 中断设置及驻留: 7 2. 工作状态的判断: 7 3. 动画的绘制: 7 4. 恢复原本工作状态: 7 七、 个人体会 7 八、 参考文献 8 九、 程序清单 8 DOS下屏幕保护程序的设计与实现 要求与需求分析 题目重述: 在未启动屏幕保护程序的情况下,当长时间不使用电脑的时显示器屏幕的显示换面长时间不变,这将使屏幕发光器件疲劳、变色、甚至烧毁,最终使屏幕某个区域偏色或变暗。因此一个合格的屏幕保护程序应满足条件: 图案动态且在屏幕上的分布尽量均匀 当停止工作后一段时间内才进入屏保 一旦按键后结束屏幕保护程序的绘制并恢复之前工作的内容程序设计分析: 屏保绘制模块 图形录入: ROM BIOS显示例程支持多种文本方式和图形方式。在不同的显示方式下屏幕显示的像素分辨率、字符分辨率、颜色数等都不同。为更细致的展现动画细节,本程序显示的像素27*35 Byte。在图形显示时调用INT10的 动画绘制: 本程序在绘制动画时考虑到动画的连贯性,使用了两个显存页。一个显存页作为显示页,另一个显存页作为后台页,绘制图像时仅仅对后台页执行像素操作,显示显存页。动画通过改变图案的绘制位置实现,当图案绘制触及屏幕边缘时改变绘图方向,且绘制图案鹿的方向与动画运动方向同向。动画绘制过程涉及以下变量作为参数:当前绘制页数(后台页)、上一次绘制页数(显示页)、下面将详细介绍动画绘制的过程。 通过交换 根据DIRECX判断绘图方向,选择调用贴图函数ONEBITMAP或ZEROBITMAP在后台页上以绘制图案。其中ONEBITMAP为每列从左到右向显存录入像素,ZEROBITMAP为每列从右到左向显存录入数据; 显示绘制完成的后台页并将调用宏CLRSCREEN把原显示页清屏; 保存绘制坐标判断图片是否绘制到屏幕边缘。如是,改变绘图方向 计算下次绘图的坐标,根据方向选择顶点坐标加 非工作状态计时模块 计时功能: 由于计算机的每次8259A产生中断信号时CH号中断处理程序实现计时功能。 在每次1CH号中断发生时,若判断运行标志CLKCNT减一,若CLKCNT归零,则调用屏幕保护函数进入屏保绘制过程。 在DOS环境下,可认为当无字符输入时为非工作状态。因此本程序通过改变键盘中断处理程序实现非工作状态的计时。具体实现方法为每次有键盘输入时将定时计数变量CLKCNT复位,对非工作状态重新计时并调用原键盘中断处理函数。 该模块功能为当屏保绘制时若有按键输入,则结束屏保绘制并返回原工作界面。在具体实现上调用INT16H 的1号子功能读键盘缓冲区字符,若缓存区存在字符,结束屏保的绘制,返回文字显示方式并显示原工作页的缓存。 中断设置及内存驻留程序 该程序作用为设置中断及把上述所有模块在内存中驻留,即装载程序。调用INT 21H的35H号子功能保存键盘中断的原中断向量到SAVINT9,调用PROLEN EQU $-FUNCTIMER计算屏保程序占用内存的字节数,调用H号子功能完成内存驻留。 程序流程图 装载程序: 定时器中断处理程序: 键盘中断处理程序: 屏幕保护程序: 核心模块功能介绍 INSTALL): 完成修改中断计时器(FUNCTIMER)和键盘(INT9)的中断向量,改变

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档