自制操作系统日记(7):字符串显示
代码仓库地址:https://github.com/freedom-xiao007/operating-system
简介
上篇中我们在屏幕上画出了界面的大致轮廓,系统有了点模样,本篇继续跟着书籍,让程序中的字符串显示在屏幕上
效果展示
先放最终的效果,可以看到显示了字符串,非常 nice,如下图:
字体制作
以前一直疑惑为啥在桌面中需要字体,打印字符串不都是基本的吗?
到这步才知道在桌面系统中,显示字符已经是图形化的了,是以填充像素的方式显示的字符串
搞自己的字体太麻烦了,我们直接抄《30 天自制操作系统》中字体,但根据我们当前的情况编译上有些不同的地方
首先把书中的源 txt 和两个工具复制到我们的工程中,即
hankaku.txt
makefont.exe
bin2obj.exe
这三个东西也上传仓库中了
接下来的制作字体基本步骤大致如下:
1.将 txt 编程 bin
2.将 bin 编程 obj
3.将 obj 变成 nasm 汇编
4.合并到 kernel.asm 中
一键运行脚本根据当前情况进行相关命令的新增和修改,完整如下,对命令添加了相关的注释:
python 脚本进行了相关的变化,以前是读取指定的文件进行处理,目前改为读取/c/nasm 下的所有文件,处理后放到/c/clean 目录下
对应的完整代码如下:
这样我们就处理完成了,虽然不想书中说的那样链接,但我们生成 nasm 汇编后,还是能正常工作的
字符串打印还是编写
需要编写两个函数,一个打印单个字符的,一个打印字符串的
打印字符串的循环调用打印单个字符的即可
新增的相关代码如下:
还是比较简单的,照抄即可,接下来就是一键运行,就成功显示文章开头的画面,非常完成
总结
书中其实并没有单独讲字符串显示,而是将字符串显示,键盘处理和鼠标处理混合到一起了
感觉上后面两者还是比较麻烦的,所以这里单独讲字符串显示的抽处理,其他两个放到后面处理
版权声明: 本文为 InfoQ 作者【萧】的原创文章。
原文链接:【http://xie.infoq.cn/article/5aaae343726dfae504546fe72】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论