自制操作系统Antz(9)——实现内核 (下) 实现图形化界面
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html
Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html
Github项目地址:https://github.com/CasterWx/AntzOS
在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,并且编写了我们自己的内核程序,接下来我们要完成界面的图形化,在显示屏中显示鼠标字符桌面,并显示一个终端界面。
效果如下:
现在我们已经简单实现了半终端半桌面的显示,虽然说非常Low,但也是Antz的一大步了。
1. 封装函数
在前几天我们已经说明了屏幕显示的原理,也就是在显存固定位置写入数据,这对于显卡来说就是像素点。
如果屏幕显示原理不清楚的可以参考第三天的:http://www.cnblogs.com/LexMoon/p/antz03.html
为了方便实现图像化,我将显卡写入的代码使用C语言封装成了函数,颜色定义为数组。
1 static unsigned char table_rgb[16 * 3] = {2 0x00, 0x00, 0x00, /* 0:黑 */3 0xff, 0x00, 0x00, /* 1:梁红 */4 ....5 0x84, 0x00, 0x84, /* 13:暗紫 */6 0x00, 0x84, 0x84, /* 14:浅暗蓝 */7 0x84, 0x84, 0x84 /* 15:暗灰 */8 };