x01.wos.5: 添加功能

准备工作
  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.添加 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.重新编译,OK! calc 现在可以不受日文字符的干扰了。

以上也是添加自己功能的一般步骤。

下载链接:os 源代码

又:代码也可到 x01.Lab.Download 中获取,上面是 CSDN 中的链接。由于博客园有时不能显示图片,所以在 CSDN 中也弄了一份。

时间: 2024-10-18 12:44:46

x01.wos.5: 添加功能的相关文章

修复VS2008 MFC类添加功能[转载+编辑]

VS2008 MFC类向导不能正确加载启动类向导给对话框添加类时出现网页错误提示:"行: 815错误: 对象不支持此属性或方法"勾选"使用 Internet Explorer 中的内置脚本调试程序"后再次出现页面错误提示:"行: 815char 3错误:对象不支持此属性或方法代码:0URL:file:///D:/Microsoft%20Visual%20Studio%209.0/VC/VCWizards/CodeWiz/MFC/Simple/HTML/20

框架的 总结(nop)------添加功能

一.添加功能 1.首先需要在前端显示界面View视图中添加 <div class="pull-right"> <a href="@Url.Action("Create")" class="btn btn-default">@T("添加")</a> </div> 2.控制器中呈现"添加"的界面: public ActionResult Cre

Hyper-V的使用之一:添加功能

很久没发布什么东西了,今天就给大家说一下微软的Hyper-V Hyper-V的介绍就不再这里细说了,网络上有很多关于Hyper-V的介绍,感兴趣的可以自己查一下. 好了,下面我们直接进入正题. 首先,我们打开服务器管理器,选择添加功能 打开添加角色和功能向导,单击下一步 选择"基于角色或基于功能的安装",单击下一步 选择服务器,单击下一步 这里我们勾选Hyper-V角色 勾选角色后,会提示添加所需要的功能,我们单击"添加功能" 添加完成后,单击下一步 这里我们可以为

Java基础知识强化39:StringBuffer类之StringBuffer的添加功能

1. StringBuffer的添加功能: public  StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身. public  StringBuffer insert(int offset, String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身. 注意:这两个方法都是返回字符串缓冲区对象本身,这样才能节省内存. 2. 案例演示: 1 package cn.itcast_02

为小linux添加功能,自动添加依赖的库到相应位置

给小linux添加功能,咱们写一个脚本吧 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 重大知识点:FILE=/etc/local/src 从左往右 echo ${FILE#/}  一个#代表将第一个/向左的内容都去掉 执行结果为etc/local/src echo ${FILE##/} 代表从左往右找,找到最后一个/ 并将向左的内容全部去掉 执行结果为/src    (用于取文件名) 从右向左 echo ${FILE%/*} 从右向左寻找/ 找到第一个 将/和向右的内容全

easyuI企业管理系统-实战三 添加功能

今天你学习了吗?本篇实例是关于easyui添加功能,特别需要注意的是,ID为dlg其class名.其余的自行对照自己的项目进行调整. <div id="dlg" class="easyui-dialog" style="z-Index: 100px;" fit="true" style="height:500px" closed="true" buttons="#dlg-

1.4为类添加功能 :类方法和实例方法

添加通过方法为类添加功能                                                              ios7cook目录 方法是类的建筑块.例如,一个名为Person类可以有,如散步逻辑功能,呼吸,吃饭,喝水.这些功能通常是封装的方法. 一种方法可以带参数,当调用方法,或者仅显示该方法时,调用者传递的变量.例如,在一个简单的世界里,我们有一个Person类的walk方法.如果你愿意,你可以添加一个参数或参数的方法,并将其命名为CGFloat类型的w

freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式

今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西大部分都是CRUD,不过作为一个菜鸟感觉还是压力山大,废话不说了开始上代码: 首先在后台Controller中添加数据处理,因为之前已经实现了显示所有复选框的选项功能了,所以这次只需要得出需要默认选中的数据,然后发到页面进行处理: 虽然代码只有这么一点,不过也耗费了好几个小时来弄出来了... 这是修

系统管理模块_岗位管理_改进_使用ModelDroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面

改进_使用ModelDroven方案 @Controller @Scope("prototype") public class RoleAction extends ActionSupport implements ModelDriven<Role>{//把ModelDriven放到栈顶,帮我们封装参数 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service @Resource private