简介

当前我们系统的分辨率是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. vue 新手指引_精通react/vue组件设计之快速实现一个可定制的进度条组件
  2. Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误
  3. android layout 工具栏,没有工具栏的Android CollapsingToolbarLayout在某个点停止而不是完全关闭...
  4. String s=a+b+c,到底创建了几个对象?
  5. 20210927 LQR
  6. StringBuffer(字符串缓冲区)
  7. windows phone 8 的新特性
  8. 珍爱生命,远离大厂政治斗争
  9. vb.net如何查询电脑麦克风收到声音_EMUI 10.1 跨屏协同实测:这一次把你的手机「搬」进电脑...
  10. 我的LAMP实现过程——apache+php
  11. java 枚举的实现原理
  12. 云图说 | 快速创建一个kubernetes集群
  13. 字符串截取mysql
  14. 在Qt Creator中添加OpenCV库
  15. easyui datagrid 获得共多少条记录_聊城市优化简化获得电力流程做法在全省供电系统推广...
  16. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...
  17. 新 V8 即将推出和 Node.js
  18. text-overflow样式属性值ellipsis的使用方法
  19. Atitit BLE 协议栈 艾提拉总结 目录 1. ——关于BLE的一些基本概念——
  20. 银联支付接口申请流程-傲付宝

热门文章

  1. 录音读写程序c语言,如果用c语言程序读取一段音频文件要如何做,具体要调用哪些函数,在网上搜索了半天,乱七八糟的,找不到什么有用的信息...
  2. Vue代码规范(大部分适用)
  3. iTunes登录出现无法连接-50等错误的解决办法
  4. 利用python分析电商_某电商平台数据分析报告(1)
  5. IPO被否,灿星文化还能保住“综艺王座”吗?
  6. 斯坦福图机器学习CS224W笔记自用:Heterogeeneous Graphs and Knowledge Graph Embeddings
  7. java中刷新js函数,js刷新页面location.reload()用法详解
  8. (附源码)Springboot + vue远程心电诊断系统 毕业设计091759
  9. ioctlsocket函数全面解析
  10. 基于S12ZVM的无感FOC堵转检测