- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
.
浙江工业大学计算机学院
计算机实验班1101 章鹏 201126100329
实验报告名称:创新实践(30天自制操作系统)
实验目标:根据教材从零开始使用C与汇编语言编写一个简单的操作系统,实现操作系统的基本功能。
实验背景:为了让学生对操作系统的底层有更清晰的了解,选取了一本名为《30天自制操作系统》的书作为两学期创新实践课程的教材,并根据该教材一步步从零开始完成每个人自己特色的简易版操作系统,锻炼学生动手能力,提高学生对操作系统的知识理解。
实验进度:第28天
成果界面截图:
截图1:操作系统初始化界面
截图2:运行命令获取操作系统基本信息
截图2.1 Mem:读取系统内存与存储空间
截图2.2 Dir:读取当前系统允许使用的应用程序
截图2.3 Exit:关闭当前console命令窗
截图2.4 应用程序名:在当前窗口下运行应用程序
截图2.5 Start+应用程序名:新建一个console命令窗并运行程序
截图2.6 Ncst(no console start):无新建窗口运行程序
截图2.7 Shift+f2:新建一个空的console窗口
截图2.8 F11:将下一层的console窗口切至最顶层
截图2.9 Tab:将当前工作区间(键盘)在窗口间循环
截图3应用程序截图:
截图3.1 a(显示字符A):
截图3.2 Winhelo/winhelo2/winhelo3:
截图3.3 Color:
截图3.4 Color2:
截图3.5 Hello3:
截图3.6 Hello4与hello5:
截图3.7 Lines:画线程序
截图3.8 Noddle:计时程序(三分钟)
截图3.9 Sosu:显示1-1000内的素数
截图3.10 Sosu3:显示1-10000内的素数
截图3.11 Star1:显示一个点
截图3.12 Stars:显示多个点
截图3.13 Walk:使用方向键控制点的移动
源代码截取:
操作系统代码:haribote文件夹(以graphic界面颜色与图形控制为例)
//graphic.c
#include bootpack.h
void init_palette(void)
{
static unsigned char table_rgb[16 * 3] = {
0x00, 0x00, 0x00, /* 0:黑 */
0xff, 0x00, 0x00, /* 1:亮红 */
0x00, 0xff, 0x00, /* 2:亮绿 */
0xff, 0xff, 0x00, /* 3:亮黄 */
0x00, 0x00, 0xff, /* 4:亮蓝*/
0xff, 0x00, 0xff, /* 5:亮紫 */
0x00, 0xff, 0xff, /* 6:浅亮蓝 */
0xff, 0xff, 0xff, /* 7:白 */
0xc6, 0xc6, 0xc6, /* 8:亮灰 */
0x84, 0x00, 0x00, /* 9:暗红 */
0x00, 0x84, 0x00, /* 10:暗绿 */
0x84, 0x84, 0x00, /* 11:暗黄 */
0x00, 0x00, 0x84, /* 12:暗青 */
0x84, 0x00, 0x84, /* 13:暗紫 */
0x00, 0x84, 0x84, /* 14:浅暗蓝 */
0x84, 0x84, 0x84 /* 15:暗灰 */
};
unsigned char table2[216*3];
int r,g,b;
set_palette(0, 15, table_rgb);
for(b=0;b6;b++){
for(g=0;g6;g++){
for(r=0;r6;r++){
table2[(r+g*6+b*36)*3+0]=r*51;
table2[(r+g*6+b*36)*3+1]=g*51;
table2[(r+g*6+b*36)*3+2]=b*51;
}
}
}
set_palette(16,231,table2);
return;
}
void set_palette(int start, int end, unsigned char *rgb)
{
int i, eflags;
eflags = io_load_eflags();
io_cli();
io_out8(0x03c8, start);
for (i = start; i = end; i++) {
io_out8(0x03c9, rgb[0] / 4);
io_out8(0x03c9,
文档评论(0)