准备工作
1.确保是 win xp,如是 win 8,运行 nasm 需按提示同意安装组件。
2.确保 src 和 z_tools 在同一目录下,nasm 已包含在 z_tools 文件夹中。
3.bmp.nasm 需用 nasm.exe 编译,格式为 -f win32,参看 app/makefile。
4.app/haribote.rule 文件作了少许修改。
使用方法
1.进入 src 文件夹,双击 cmd.bat,在命令行窗口分别输入如下命令即可:
cd apilib make cd ../app make cd ../ make
2.操作系统启动后,shift + F2 可打开新终端,输入 exit 可关闭终端。
3.终端中分别输入 winhi 回车,type boot.s 回车可获取初步体验。效果图如下:
4.终端中输入 tview boot.s 可浏览文件,gview 1.bmp 可查看图片,按 q 或 Q 关闭。效果图如下:
5.终端中输入 ball 是个小游戏,空格键发射子弹,4、6 两个数字键左右移动,打 X 关闭。效果图如下:
一点改进
1.添加 apilib/api028.s 文件,内容如下:
[format "WCOFF"] [instrset "i486p"] [bits 32] [file "api028.nas"] global _api_setlang [section .text] _api_setlang: ; void api_setlang(int mode); mov edx,28 mov eax, [esp + 4] int 0x40 ret
2.apilib/makefile 当然要作相应修改,改动的地方只有一处,就是在 ApiObjs 中添加 api028.obj。
3.修改app/api.h,也只添加一处,即 api_setlang 的声明: void api_setlang(int mode);
4.修改app/calc.c 中的 HariMain(),开头添加如下代码:
int oldmode = api_getlang(); api_setlang(0);
在倒数第二行添加如下代码:
api_setlang(oldmode);
5. 还有就是 console.c 中的 hrb_api() 函数,需添加 else if (edx == 28) {...}, 可参看源代码。
按使用方法 1 重新编译.。OK! calc 现在可以不受日文字符的干扰了。
以上也是添加自己功能的一般步骤。
x01.wos.5 下载链接:os 源代码
又:代码也可到我的置顶随笔 x01.Lab.Download 中获取,上面的是 CSDN 中的链接。由于博客园有时不能显示图片,所以在 CSDN 中也弄了一份。