30天自制操作系统(14)
DAY14_高分辨率及键盘输入
1. 继续测试性能
- 之前我们通过“消除位移处理”缩短时间,对于很多“位移”情况,改进才能看到效果。所以我们使用大量的定时器,然后对性能进行比较。
2.提高分辨率(1)
- 由于画面切换中我们要使用BIOS,所以就需要改写asmhead.nas的“画面模式设定”部分了。
; 设定画面模式 |
3.提高分辨率(2)
- 将程序改写,使在真机上运行
4.键盘输入(1)
- 按照下表,在键盘按键的基础上加上0x80就可以得到键弹起时的数值
5.键盘输入(2)
- 问题:每一个按键都需要一个if,程序会变长,我们进行修改:
static char keytable[0x54] = { |
6.追记内容(1)
==在窗口中添加一些画,改变鼠标和字符的显示位置以及颜色。按下BackSpace,还可以改写已经输入的字符==
7.追记内容(2)
==使用鼠标移动窗口==
添加的程序if ((mdec.btn & 0x01) != 0) {
/* 按下左键、移动sht_win */
sheet_slide(sht_win, mx - 80, my - 8);
/* 到这里结束! */ }
- 即使窗口跑到了画面外,也没有问题。因为我们已经针对鼠标指针提前采取了对策,这就如
同图层跑到了画面外面也可以动起来一样。