30天自制操作系统期末实验报告Word下载.docx
- 文档编号:20433861
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:21
- 大小:538.09KB
30天自制操作系统期末实验报告Word下载.docx
《30天自制操作系统期末实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《30天自制操作系统期末实验报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
截图2.4应用程序名:
在当前窗口下运行应用程序
截图2.5Start+应用程序名:
新建一个console命令窗并运行程序
截图2.6Ncst(noconsolestart):
无新建窗口运行程序
截图2.7Shift+f2:
新建一个空的console窗口
截图2.8F11:
将下一层的console窗口切至最顶层
截图2.9Tab:
将当前工作区间(键盘)在窗口间循环
截图3应用程序截图:
截图3.1a(显示字符A):
截图3.2Winhelowinhelo2winhelo3:
截图3.3Color:
截图3.4Color2:
截图3.5Hello3:
截图3.6Hello4与hello5:
截图3.7Lines:
画线程序
截图3.8Noddle:
计时程序(三分钟)
截图3.9Sosu:
显示1-1000内的素数
截图3.10Sosu3:
显示内的素数
截图3.11Star1:
显示一个点
截图3.12Stars:
显示多个点
截图3.13Walk:
使用方向键控制点的移动
源代码截取:
操作系统代码:
;
}
voidset_palette(intstart,intend,unsignedchar*rgb)
{
inti,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,rgb[1]4);
io_out8(0x03c9,rgb[2]4);
rgb+=3;
}
io_store_eflags(eflags);
return;
voidboxfill8(unsignedchar*vram,intxsize,unsignedcharc,intx0,inty0,intx1,inty1)
intx,y;
for(y=y0;
y<
=y1;
y++){
for(x=x0;
x<
=x1;
x++)
vram[y*xsize+x]=c;
voidinit_screen8(char*vram,intx,inty)
boxfill8(vram,x,COL8_0,0,x-1,y-29);
boxfill8(vram,x,COL8_C6C6C6,0,y-28,x-1,y-28);
boxfill8(vram,x,COL8_FFFFFF,0,y-27,x-1,y-27);
boxfill8(vram,x,COL8_C6C6C6,0,y-26,x-1,y-1);
boxfill8(vram,x,COL8_FFFFFF,3,y-24,59,y-24);
boxfill8(vram,x,COL8_FFFFFF,2,y-24,2,y-4);
boxfill8(vram,x,COL8_3,y-4,59,y-4);
boxfill8(vram,x,COL8_59,y-23,59,y-5);
boxfill8(vram,x,COL8_2,y-3,59,y-3);
boxfill8(vram,x,COL8_60,y-24,60,y-3);
boxfill8(vram,x,COL8_x-47,y-24,x-4,y-24);
boxfill8(vram,x,COL8_x-47,y-23,x-47,y-4);
boxfill8(vram,x,COL8_FFFFFF,x-47,y-3,x-4,y-3);
boxfill8(vram,x,COL8_FFFFFF,x-3,y-24,x-3,y-3);
voidputfont8(char*vram,intxsize,intx,inty,charc,char*font)
inti;
char*p,d*data*;
for(i=0;
16;
p=vram+(y+i)*xsize+x;
d=font[i];
if((d&
0x80)!
=0){p[0]=c;
0x40)!
=0){p[1]=c;
0x20)!
=0){p[2]=c;
0x10)!
=0){p[3]=c;
0x08)!
=0){p[4]=c;
0x04)!
=0){p[5]=c;
0x02)!
=0){p[6]=c;
0x01)!
=0){p[7]=c;
voidputfonts8_asc(char*vram,intxsize,intx,inty,charc,unsignedchar*s)
externchar;
voidinit_mouse_cursor8(char*mouse,charbc)
for(y=0;
for(x=0;
x++){
if(cursor[y][x]=='
*'
){
mouse[y*16+x]=COL8_000000;
}
0'
mouse[y*16+x]=COL8_FFFFFF;
.'
mouse[y*16+x]=bc;
}
voidputblock8_8(char*vram,intvxsize,intpxsize,
intpysize,intpx0,intpy0,char*buf,intbxsize)
pysize;
pxsize;
vram[(py0+y)*vxsize+(px0+x)]=buf[y*bxsize+x];
操作系统api(以api002’输出单个字符’为例):
api002.nas
[FORMAT"
WCOFF"
]
[INSTRSET"
i486p"
[BITS32]
[FILE"
api002.nas"
GLOBAL_api_putstr0
[SECTION.text]
_api_putstr0:
;
voidapi_putstr0(char*s);
PUSHEBX
MOVEDX,2
MOVEBX,[ESP+8];
s
INT0x40
POPEBX
RET
应用程序(以stars为例):
stars.c
#include"
apilib.(void)
char*buf;
intwin,i,x,y;
api_initmalloc();
buf=api_malloc(150*100);
win=api_openwin(buf"
stars"
);
api_boxfilwin(win,0);
for(i=0;
i<
50;
i++){
x=(rand()%137)+6;
y=(rand()%67)+26;
api_point(win,x,y,3);
for(;
){
if(api_getkey
(1)==0x0a){
break;
api_end();
操作系统Makefile文件:
TOOLPATH=..z_tools
INCPATH=..z_toolsbeepdown.:
..z_toolsfdimg0at.tek\
wbinimgsrc:
len:
512from:
0to:
0\
copyfrom:
beepdown.:
$(MAKE)
$(MAKE)-C..z_toolsqemu
install:
$(MAKE)-Ccolor
$(MAKE)-Ccolor2
$(MAKE)_full:
$(MAKE)full
$(COPY)
install_full:
$(IMGTOL)wa:
_os:
$(MAKE)-C
clean:
src_only:
$(MAKE)clean
-$(DEL)_full:
$(MAKE)-Capilibclean
$(MAKE)-Caclean
$(MAKE)-Cwinheloclean
$(MAKE)-Cwinhelo2clean
$(MAKE)-Cwinhelo3clean
$(MAKE)-Cstar1clean
$(MAKE)-Cstarsclean
$(MAKE)-Cstars2clean
$(MAKE)-Clinesclean
$(MAKE)-Cwalkclean
$(MAKE)-Cnoodleclean
$(MAKE)-Cbeepdownclean
$(MAKE)-Ccolorclean
$(MAKE)-Ccolor2clean
src_only_full:
$(MAKE)-Csrc_only
$(MAKE)-Ccolorsrc_only
$(MAKE)-Ccolor2src_only
-$(DEL)_full
-$(DEL)haribote.img
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 30 自制 操作系统 期末 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)