zoukankan      html  css  js  c++  java
  • x01.os.16: 添加功能

    准备工作
      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 中也弄了一份。

  • 相关阅读:
    AngularJS方法 —— angular.bind
    rails 部署 nginx + passenger
    查找并删除
    rails 网站跨域
    From Ruby array to JS array in Rails- 'quote'?
    rails 网站字体
    form_tag
    bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装
    ruby 功力修炼
    bootstrap 移动自适应界面
  • 原文地址:https://www.cnblogs.com/china_x01/p/4134286.html
Copyright © 2011-2022 走看看