简介

当前我们系统的分辨率是320*200, 这种分辨率太小导致显示效果不好!

目标

;设置屏幕色彩模式mov bx,0x4101mov ax,0x4f02int 0x10

同320200中断调用号一样,只需要修改传递的参数即可调整显示分辨率。不过显存地址由0xa0000 变为 0xe0000000。
指定分辨率有以下几种方式:
bx = 0x4101 表示分辨率为 640
480
bx = 0x4103 表示分辨率为800600
bx = 0x4105 表示分辨率为1024
768
bx=0x4107 表示分辨率为1280*1024
上面的显示形式都是8位色彩模式。

1.os.c
修改init_main 函数显存信息如下

_vram.addr = (unsigned char *)0xe0000000;
_vram.screenW = 640;
_vram.screenH = 480;

再修改以前320×200的相关代码。运行效果如下图:

键盘响应改进

键盘扫描码转换为可输出的Ascii字符,转换成功返回非0。

unsigned char scanCode2Ascii(int code){static char keytable[0x54] = {0, 0, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '^', 0, 0,'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '@', '[', 0, 0, 'A', 'S','D', 'F', 'G', 'H', 'J', 'K', 'L', ';', ':', 0, 0, ']', 'Z', 'X', 'C', 'V','B', 'N', 'M', ',', '.', '/', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, '7', '8', '9', '-', '4', '5', '6', '+', '1', '2', '3', '0', '.'};return keytable[code];
}

修改键盘终端响应操作如下:

  //断码 = 通码 + 0x80if(_keybufInfo.len>0){io_cli();char data = fifo8_get(&_keybufInfo);if(data == 0x1c){memId++;if(memId==memCount){memId=0;}showMemInfo(memDes+memId,memId);}else if(scanCode2Ascii(data)!=0 && (unsigned char)data<0x80){int len = 0;_tempArr[len++] = scanCode2Ascii(data);_tempArr[len++] = 0;showString(_shtctl,_shtMsg,140,44,COL8_FFFFFF,COL8_C6C6C6,_tempArr);}io_sti();

运行并按A键效果如下:

其中部分非字母按键是有问题的!不过现在不影响相关操作,先跳过!

25.改进分辨率和按键响应相关推荐

  1. 全球25米分辨率PALSAR镶嵌式和森林/非森林地图(FNF)。数据集介绍及下载

    一.概述 为了提高对全球环境变化影响的理解和应对,对全球土地覆盖的及时和一致的监测, 利用卫星遥感进行全球监测是检测土地表面变化的最有效方法之一,如森林砍伐和森林退化,因为卫星可以定期提供覆盖广泛地区 ...

  2. Android:按键响应方式第一种onClick属性,第二种方法接口类,第三种方式匿名内部类,第四种方式Activity

    一.在xml 中设置按键的onClick 绑定的函数 新建一个工程 然后在相关的页面添加一个Button 运行一下 实际上,现在这个按键一,我们去运行的时候,他是没有任何的反馈的,我们按完它,他没有任 ...

  3. matlab等待按键响应,matlab中figure对象的按键响应

    常用的有两个WindowKeyPressFcn和WindowKeyReleaseFcn,分别表示按下按键和释放按键的响应函数,两者调用形式上是一样的. 1.说明 以indowKeyPressFcn为例 ...

  4. Val编程-按键响应模式

    由于Val是通过语句gotoxy函数来进行光标移动的,不支持触摸屏与鼠标,因此对于其界面编程有很大的局限. 一般有下面几种模式来进行编程. 1.按键响应模式(中断模式) 2.轮询模式 一般推荐使用按键 ...

  5. Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

    按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...

  6. QPushButton 与 QListWidget 的按键响应

    在Qt中添加按钮或表格控件时需要添加其按键响应,一般来说有两种方法,一种是直接实现其响应函数,第二种是自己写一个响应函数,然后用Qt的信号槽将它们连接起来.愚以为第一种方法更为简单一些. 声明这些控件 ...

  7. 多功能检测按键 单按 长按 多个按键 响应方式

    //这是我对以前发表过的按键检测方式的优化,之前的是:http://blog.csdn.net/chuangwu2009/article/details/9466715 //现在的程序按键有效检测方式 ...

  8. linux下获取按键响应事件(转)

    1.问题  通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序  代码是在unbuntu10.04编译执行通过的 2.input_event描述  在Linux内核 ...

  9. Linux按键响应测试

    在Linux内核中,input设备用input_dev结构体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作就是向系统报告按键.触摸屏.键盘.鼠标等输入事件(event,通过input ...

最新文章

  1. 探讨BI可视化下的旅游大数据分析,你的钱都花哪了?
  2. php 设置curl不超时时间,curl命令的超时时间
  3. C#基础第三天-作业-集合-冒泡排序-模拟名片
  4. leetcode79. 单词搜索 网格地图搜索+回溯经典写法啦
  5. verilog找不到模块_工欲善其事,必先利其器 verilog编辑器搭建
  6. tomcat开启cgi
  7. linux 线程 waitforsingleobject,用Sleep或WaitForSingleObject实现线程的休眠 | 求索阁
  8. Python3.2.3官方文档(中文版)
  9. C语言学习 数独游戏
  10. 限制firefox上传框宽度
  11. sysbench线程数_分享3个Sysbench性能压测脚本及多并发压测过程
  12. sql_存储过程、函数、分支、循环
  13. linux 命令下载jdk
  14. E45: ‘readonly‘ option is set (add ! to override)
  15. linux环境变量大全,Linux环境变量总结
  16. mysql执行计划extra_四、MySQL优化之explain执行计划的extra属性
  17. DCloud Native.js示例汇总
  18. 如何查看yandex文字搜索广告的搜索词?
  19. ES6 Set数组操作
  20. [论文阅读笔记56]基于标注(NovelTagging方法)实体与关系联合抽取-ACL2017

热门文章

  1. web服务器性能指标有哪些,web服务器性能指标
  2. 庖丁解牛-Resnet50 深度剖析,细致讲解,深入理解
  3. Oracle 中SDE.ST_GEOMETRY类型的shape数据如何查看坐标点信息(WKT字符串)?
  4. 小技巧——优盘图标改变和背景改变
  5. Linux下文件的压缩与解压缩
  6. android简单星座查询,星座查询android源代码
  7. 帆软js刷新页面汇总
  8. html网页在不同尺寸屏幕大小,移动端h5页面不同尺寸屏幕适配方法
  9. 计算机市场行情论文,市场行情论文.doc
  10. Python_Numpy库的ndarray对象的属性有哪些?如何获取它们的值?